我有一个 png 文件,必须将其转换为 gif 文件。 其中有一个透明部分,当我保存它时,透明部分是黑色而不是透明的。 这是我的代码:
FileStream imgStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write);
Image.FromFile(imageInput).Save(imgStream, ImageFormat.Gif);
这里,imageinput 是我的 png 的完整路径,输出文件是带有 .gif 扩展名的 filefullpath。
你能看出这里出了什么问题吗?
米歇尔
最佳答案
PNG 使用 alpha 透明度,这意味着每个像素除了其颜色外,还包含一个表示其透明度的值(称为 alpha
)。这允许 PNG 图像是半透明的。
GIF 图像使用二进制透明度,这意味着每个像素只包含一种颜色,但其中一种可能的颜色是透明
。
因此,PNG的透明部分会被涂成黑色,但完全透明。
当您保存 GIF 文件时,alpha 值将被忽略,从而导致黑色。
您需要遍历图像中的像素,用 Color.Transparent
替换任何 alpha 为 0 的颜色。
编辑:您需要调用 MakeTransparent
关于c# - 使用 gdi+ (C#) 将 png 转换为 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989450/