如何将PNG转换为GIF以保持透明度?
我希望使用Assign()方法可以工作但似乎没有迁移透明度。在GIF中,它表示为黑色。
png:=TPngImage.Create;
try
png.LoadFromFile(sFile);
// comes from file: png.TransparencyMode;
// comes from file: png.Transparent
// didn't help: gif.Transparent:=true;
gif.Assign(png);
// didn't help: gif.Transparent:=true;
gif.SaveToFile('e:\tmp\out.gif');
finally
png.Free;
end;
我还没有找到在德尔福处理这个问题的方法...
谢谢!
答案 0 :(得分:2)
可以将图像从PNG传输到GIF。但是,我不建议您这样做。 GIF格式的能力远低于PNG。 PNG支持RGBA颜色通道和部分透明度。 GIF使用256色调色板,不支持部分透明度。
有许多库可以充分利用糟糕的工作并尝试生成接近PNG图像的GIF图像,但信息将会丢失。
GIF格式可以追溯到20世纪80年代后期,时间已经过去了。它早已达到其目的。 PNG现代,有能力并得到很好的支持。如果可以这样做,您应该从GIF切换到使用PNG。