我有一个 png 文件,必须将其转换为 gif 文件。
里面有一个透明的部分,当我保存它时,透明的部分是黑色的而不是透明的。
这是我的代码:
FileStream imgStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write);
Image.FromFile(imageInput).Save(imgStream, ImageFormat.Gif);
在这里,imageinput 是我的 png 的完整路径,输出文件是带有 .gif 扩展名的文件完整路径。
你能看出这里出了什么问题吗?
michel
PNG 使用 alpha 透明度,这意味着每个像素除了其颜色之外,还包含一个表示其透明度的值(称为alpha
)。这允许 PNG 图像是半透明的。
GIF 图像使用二进制透明度,这意味着每个像素仅包含一种颜色,但其中一种可能的颜色是Transparent
.
因此,PNG 的透明部分将被着色为黑色,但完全透明。
保存 GIF 文件时,Alpha 值将被忽略,导致黑色。
您需要循环遍历图像中的像素,将 alpha 为 0 的任何颜色替换为Color.Transparent
.罢工>
EDIT: 你需要打电话MakeTransparent http://msdn.microsoft.com/en-us/library/8517ckds.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)