为什么将包含 gif 的 Image 对象分配给 Bitmap 的新实例会破坏 gif

Why assigning an Image object containing gif to a new instance of Bitmap, breaks the gif

一个图像对象包含一个 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);

Bitmap 不支持动画文件。

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

new Bitmap(Image) 创建图像大小的绘图表面(Graphics),然后使用 Graphics.DrawImage

在其上绘制图像

我想在最后一种情况下没有保留动画