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格式的了。不知道怎么解决,有什么办法吗 谢谢回复
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格式的了。不知道怎么解决,有什么办法吗 谢谢回复
codeInfo[3]可能返回了Tiff的编码器,你用Tiff编码器存图像,图像就不是Gif了。在这篇MSDN文章中讲到了GIF透明色的处理,或许对你有帮助。
How to save a .gif file with a new color table by using Visual C#
看这个把http://blog.csdn.net/zgke/archive/2008/11/28/3401077.aspx