我试图在GDI +中保存一个透明的GIF,但似乎重用了颜色表中的第一种颜色 - 这是GDI的错误吗?
即使我手动设置颜色并将gif重新保存为gif,我仍然无法将其输出到文件中的透明gif:
Bitmap b = new Bitmap("c:\\temp\\source.gif");
Bitmap canvas = new Bitmap(b.Width, b.Height);
Graphics g = Graphics.FromImage(canvas);
g.Clear(Color.Transparent);
// Draw image
g.DrawImage(b, 0, 0);
canvas.MakeTransparent(Color.Black);
canvas.Save("c:\\temp\\output.gif", System.Drawing.Imaging.ImageFormat.Gif);
在输出图像中,黑色永远不会被设置为透明色。
或者有没有办法在WPF中执行此操作?
答案 0 :(得分:0)
我建议你看看这个图像处理库ImageMagick http://www.imagemagick.org/
然后使用此命令将保存的gif转换为具有透明背景的gif
convert orig.gif -transparent black transp.gif
这可能不会产生完美的结果,但值得一试。如果您不想通过运行控制台命令来执行此操作,您可能还需要查看ImageMagick的.NET Wrapper https://magick.codeplex.com/。