需要在gif中选择一个框架

时间:2013-06-09 09:30:00

标签: c# winforms picturebox gif animated-gif

我需要重新启动gif图像,以便从第一帧开始。 我对C#中的gif图像经验不足。我在C#windows窗体应用程序上工作。我的gif图像在图片框中。我需要在每次例如按下按钮时重新启动它。

我尝试过:

pictureBox1.Image.SelectActiveFrame(new FrameDimension(pictureBox1.Image.FrameDimensionsList[0]), 0)

但它没有显示任何变化。

我也尝试过Image animator也没有运气。我真的需要帮助,这是我在高中工程的最后一个项目。

2 个答案:

答案 0 :(得分:2)

我尝试了这个解决方案并且工作正常:

Image animated = pictureBox1.Image;
pictureBox1.Image = animated;

这样,您重置pictureBox1.Image,以便动画GIF从头开始。

答案 1 :(得分:2)

我发现Image.SelectActiveFrame()似乎不起作用,因为它的工作方式与您的想法不同。如果有一些控件读取其帧,它只设置初始帧,第一帧读取是活动帧。因此,在SelectActiveFrame()之后,您必须将pictureBox的Image属性重新分配给该新图像,如下所示:

private void RestartToFrameIndex(int index){
   pictureBox.Image.SelectActiveFrame(new FrameDimension(pictureBox.Image.FrameDimensionsList[0]), index);
   pictureBox.Image = pictureBox.Image;
}

//If you want to restart to the first frame, just call the method above like this:
RestartToFrameIndex(0);

这是我刚刚找到的一般解决方案:)希望它有助于其他人......