如何将 PNG 转换为 GIF 以保持透明度?
How can I convert PNG to GIF keeping the transparency?
如何将 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;
我在Delphi中还没有找到处理这个问题的方法...
谢谢!
可以将图像从 PNG 格式转换为 GIF 格式。但是,我不建议您这样做。 GIF 格式的功能远不如 PNG。 PNG 支持 RGBA 颜色通道和部分透明度。 GIF 使用 256 色调色板,不支持部分透明度。
有许多可用的库可以充分利用糟糕的工作并尝试生成接近 PNG 图像的 GIF 图像,但信息将会丢失。
GIF 格式可以追溯到 1980 年代后期,而且时间已经过去了。它早就达到了它的目的。 PNG 是现代的、有能力的并且得到了很好的支持。如果可能的话,您应该从 GIF 切换到使用 PNG。
如何将 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;
我在Delphi中还没有找到处理这个问题的方法...
谢谢!
可以将图像从 PNG 格式转换为 GIF 格式。但是,我不建议您这样做。 GIF 格式的功能远不如 PNG。 PNG 支持 RGBA 颜色通道和部分透明度。 GIF 使用 256 色调色板,不支持部分透明度。
有许多可用的库可以充分利用糟糕的工作并尝试生成接近 PNG 图像的 GIF 图像,但信息将会丢失。
GIF 格式可以追溯到 1980 年代后期,而且时间已经过去了。它早就达到了它的目的。 PNG 是现代的、有能力的并且得到了很好的支持。如果可能的话,您应该从 GIF 切换到使用 PNG。