gpt4 book ai didi

delphi - 在 Delphi 2007 中将具有透明度的位图保存为 PNG

转载 作者:行者123 更新时间:2023-12-03 15:45:36 25 4
gpt4 key购买 nike

我有一个包含透明度信息的 Delphi 位图(32 位)。我需要将其转换并保存为 PNG 文件,同时保留透明度。

我目前拥有的工具是graphics32 Library、GR32_PNG(由Christian Budde 提供)和PNGImage(由Gustavo daud 提供)。

最好的方法是什么?

编辑 1:我的位图中不仅有一种颜色是透明的,而且还需要保留具有不同透明度级别的像素。

编辑2:我通过将图像的背景设置为PNG来获取带有alpha信息的位图,我只有一个空的alpha层。然后我在上面写上抗锯齿文本。然后我保存位图。用gimp打开时显示透明度,放大后可以看到抗锯齿的效果。

最佳答案

使用PNG图像。在 Delphi 中,试试这个:

function ConvertToPNG(oBMPSrc: TBitmap; sFilename: String);
var
oPNGDest: TPNGObject;
begin
oPNGDest := TPNGObject.Create;
try
oPNGDest.Assign(oBMPSrc);
oPNGDest.SaveToFile(sFilename);
finally
oPNGDest.Free;
end;
end;

如果这对您不起作用,您可能需要分别复制 Alpha 和 RGB 值。

function ConvertToPNG(oBMPSrc: TBitmap; sFilename: String);
var
oPNGDest: TPNGObject;
begin
oPNGDest := TPNGObject.CreateBlank(COLOR_RGBALPHA, 8, oBMPSrc.Width, oBMPSrc.Height);
try
oPNGDest.CreateAlpha;
// Copy over RGB
..
// Copy over Alpha
..
// Save to file
oPNGDest.SaveToFile(sFilename);
finally
oPNGDest.Free;
end;
end;

关于delphi - 在 Delphi 2007 中将具有透明度的位图保存为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com