代码之家  ›  专栏  ›  技术社区  ›  checho

为什么将包含gif的图像对象分配给位图的新实例会破坏gif

  •  0
  • checho  · 技术社区  · 10 年前

    Image对象包含一个gif文件,如果保存到磁盘并打开,gif将正常显示。但是,如果从图像实例创建并保存位图对象,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 回复  |  直到 10 年前
        1
  •  4
  •   Daniel A. White    10 年前

    Bitmap 不支持动画文件。

        2
  •  1
  •   Dmitry    10 年前

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

    新的位图(图像)创建图像大小的绘图表面(图形),然后使用Graphics.DrawImage在其上绘制图像

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

    推荐文章