我有一个必须转换为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.
你能看到这里有什么问题吗?
米歇尔
PNG使用alpha透明度,这意味着每个像素除了颜色外,还包含一个表示透明度(称为alpha
)的值.这允许PNG图像是半透明的.
GIF图像使用二进制透明度,这意味着每个像素只包含一种颜色,但其中一种颜色可能是Transparent
.
因此,PNG的透明部分将为黑色,但完全透明.
保存GIF文件时,将忽略Alpha值,从而导致黑色.
您需要遍历图像中的像素,替换任何alpha值为0的颜色Color.Transparent
.
编辑:你需要打电话MakeTransparent