我想在winform窗体背景上全屏显示gif,卡成单帧怎么解决?求解答
代码如下:
Task.Run(() =>
{
Bitmap animatedGif = new Bitmap(Application.StartupPath + "bone.gif"/*图片路径*/);
Graphics g = this.CreateGraphics();
int PropertyTagFrameDelay = 0x5100;
PropertyItem propItem = animatedGif.GetPropertyItem(PropertyTagFrameDelay);
byte[] bytes = propItem.Value;
FrameDimension frameDimension = new FrameDimension(animatedGif.FrameDimensionsList[0]);
int frameCount = animatedGif.GetFrameCount(FrameDimension.Time);
while (true)
{
for (int i = 0; i <= animatedGif.GetFrameCount(frameDimension) - 1; i++)
{
this.BeginInvoke(new Action(() =>
{
animatedGif.SelectActiveFrame(frameDimension, i);
g.DrawImage(animatedGif, 0, 0, f1.Width, f1.Height);
}));
Thread.Sleep(100);
}
}
});
操作 | 作用 |
---|---|
创建animatedGif变量 | 获取gif图像 |
无限循环 | 循环绘制每一帧 |
创建i变量 | 帧的索引 |