Bitmap bit = new Bitmap(36, 50);
            Graphics g = Graphics.FromImage(bit);
            Image img = Image.FromFile(@"D:\tool\2005\demo\battery1.gif");
            g.FillRectangle(Brushes.Transparent, 0, 0, bit.Width, bit.Height);
            g.DrawImage(img, 0, 7);            ImageCodecInfo[] codeInfo = ImageCodecInfo.GetImageEncoders();
            EncoderParameters en = new EncoderParameters(1);
            EncoderParameter p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 0);
            en.Param[0] = p;
            bit.Save(@"D:\tool\2005\demo\Demo.gif", codeInfo[3], en);
            //bit.Save(@"D:\tool\2005\demo\a.gif",System.Drawing.Imaging.ImageFormat.Gif);
            g.Dispose(); 
            img.Dispose();
            bit.Dispose();你好,我现在想做一张gif图片,把他画布大小扩大,但是背景是透明的,我改变画布大小以后背景由透明色 变黑色了   不明白怎么回事,上面的代码是可以变透明,但是格式我用专业图片工具看了不是GIF格式的了。不知道怎么解决,有什么办法吗   谢谢回复

解决方案 »

  1.   

    ImageCodecInfo.GetImageEncoders()返回了你机器上安装的图像编码器。
    codeInfo[3]可能返回了Tiff的编码器,你用Tiff编码器存图像,图像就不是Gif了。在这篇MSDN文章中讲到了GIF透明色的处理,或许对你有帮助。
    How to save a .gif file with a new color table by using Visual C#
      

  2.   

    如果只是想要透明。建议保存成PNG格式~~.NET对GIF支持非常不好。
      

  3.   

    如果必须 是GIF
    看这个把http://blog.csdn.net/zgke/archive/2008/11/28/3401077.aspx