为什么将包含gif的Image对象分配给新的Bitmap实例,打破了gif

时间:2016-01-08 15:17:59

标签: c# .net winforms bitmap gif

Image对象包含一个gif文件,如果保存到磁盘并打开,gif正常显示。但是,如果从图像实例创建并保存了Bitmap对象,则gif不再起作用:

 WebClient client = new WebClient();
 client.DownloadFile(new Uri("http://www.ajaxload.info/images/exemples/25.gif"), "25.gif");

 Image original = Image.FromFile("25.gif");
 original.Save("25-WorksFine.gif", ImageFormat.Gif);

 Bitmap bmp = new Bitmap(original);
 bmp.Save("25-Broken.gif", ImageFormat.Gif);

2 个答案:

答案 0 :(得分:4)

Bitmap不支持动画文件。

答案 1 :(得分:1)

Image.FromFile使用本机GDI +使用适当的解码器加载文件

new Bitmap(Image)创建一个图像大小的绘图表面(Graphics),然后使用Graphics.DrawImage在其上绘制图像

我想在最后一个案例中没有保留动画