c# - 如何减慢动画gif

标签 c# winforms gif animated

我有一个以最简单的方式显示动画 gif 的 WinForms 应用程序 - 有一个直接加载 .gif 的 PictureBox。

WinForms 设计器生成的代码如下所示:

        // 
        // pictureBoxHomer
        // 
        this.pictureBoxHomer.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
        this.pictureBoxHomer.Dock = System.Windows.Forms.DockStyle.Fill;
        this.pictureBoxHomer.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxHomer.Image")));
        this.pictureBoxHomer.Location = new System.Drawing.Point(3, 3);
        this.pictureBoxHomer.Name = "pictureBoxHomer";
        this.pictureBoxHomer.Size = new System.Drawing.Size(905, 321);
        this.pictureBoxHomer.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
        this.pictureBoxHomer.TabIndex = 0;
        this.pictureBoxHomer.TabStop = false;

图像当然是这样的:http://media.tumblr.com/tumblr_m1di1xvwTe1qz97bf.gif

问题:虽然这个 gif 动画在浏览器中显示得非常好,但它在 WinForms 应用程序中运行速度太快,无法满足需要。所以:

问题:有没有办法在 WinForms 应用程序中减慢动画 gif 的速度?

最佳答案

我认为答案与图像相关而不是 C#。如果您在 GIMP 等工具中编辑该特定图像并查看图层,您会看到它由 10 个图层(帧)组成,但它们之间没有设置“延迟时间” - 它在图层的(0ms)属性。您可以编辑层的属性并通过右键单击它并在菜单中选择该选项来更改它。当然,最后您必须导出新图像并将其另存为 GIF,在选项中选择“动画”。

我相信在这种情况下(当没有指定帧之间的延迟时间时)网络浏览器和 C# PicutureBox 会强制使用它们自己的不同默认值。所以,如果你延迟 100 毫秒,就像描述的那样 here在第 3 步中,您将使动画放慢速度。

关于c# - 如何减慢动画gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043601/

相关文章:

c# - String 对象如何在没有 new 关键字或构造函数的情况下分配内存?

c# - 在哪里存储自定义配置文件

.net - 使用水平滚动条的滚动面板

c# - 设置 DataGridView ComboBoxColumn 的 DropDown 列表宽度 - WinForms

Java:d​​rawImage 动画 gif 卡住在第一帧

java - 使用 java 将透明 gif/png 转换为 jpeg

c# - Xamarin Forms,使用异步来应用 ListView ItemSource

c# - 我如何从库调用方法到 C# 控制台

.net - 如何创建 Form 的实例?

image - APNG 与 GIF。哪个更好?