有没有办法改变MemoryStream的速度?

时间:2014-12-09 17:29:52

标签: c# .net winforms

我使用此方法在我创建的pictureBox1动画gif中显示。 GIF动画已经拥有了自己的速度。例如,每秒1帧,或者我可以将每帧设置为1帧。

        public void pictureBoxImage(string pbImage)
        {
            Image img2 = null;
            try
            {
                using (img = Image.FromFile(pbImage))
                {
                    Image i = this.pictureBox1.Image;
                    this.pictureBox1.Image = null;

                    if (i != null)
                        i.Dispose();
                    MemoryStream m = _memSt;
                    _memSt = new MemoryStream();
                    img.Save(_memSt, System.Drawing.Imaging.ImageFormat.Gif);

                    if (m != null)
                        m.Dispose();
                    img2 = Image.FromStream(_memSt);

                }

                if (img2 != null)
                    pictureBox1.Image = img2;
                label2.Text = numberOfFiles.ToString();
                label6.Text = nameOfStartFile.ToString();
                label4.Text = nameOfEndFile.ToString();
            }
            catch (Exception err)
            {
                Logger.Write("Animation Error >>>   " + err);
            }
        }

例如pbImage包含:

C:\ previewDirectory \ preview.gif

我的问题是,如果有任何方法可以更改MemoryStream变量速度,那么它会以不同的速度显示动画gif?或者,如果我的硬盘上的动画速度文件gif保存为1毫秒的速度,那么这是速度而且无法更改?

我想在pictureBox1中使用hScrollBar来改变pictureBox1中显示的动画gif的速度。

1 个答案:

答案 0 :(得分:4)

你很困惑。动画速度在GIF文件本身中定义。即定义每帧的显示时间。这与MemoryStreams或MemoryStreams的速度完全无关。

如果您想要更改动画速度,请使用图形或动画应用程序功能在GIF文件中更改它。

您可以在此处执行此操作:http://ezgif.com/speed