用gdi +(C#)将png转换为gif

Mic*_*hel 2 c# gdi+

我有一个必须转换为gif文件的png文件.其中有一个透明的部分,当我保存它时,透明部分是黑色而不是透明的.这是我的代码:

FileStream imgStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write);

Image.FromFile(imageInput).Save(imgStream, ImageFormat.Gif);
Run Code Online (Sandbox Code Playgroud)

这里,imageinput是我的png的完整路径,输出文件是扩展名为.gif的filefullpath.

你能看到这里有什么问题吗?

米歇尔

SLa*_*aks 5

PNG使用alpha透明度,这意味着每个像素除了颜色外,还包含一个表示透明度(称为alpha)的值.这允许PNG图像是半透明的.

GIF图像使用二进制透明度,这意味着每个像素只包含一种颜色,但其中一种颜色可能是Transparent.

因此,PNG的透明部分将为黑色,但完全透明.
保存GIF文件时,将忽略Alpha值,从而导致黑色.

您需要遍历图像中的像素,替换任何alpha值为0的颜色Color.Transparent.

编辑:你需要打电话MakeTransparent