Delphi BMP JPG去底转换成透明PNG
时间: 2023-11-26 13:06:27 浏览: 79
delphi bmp生成透明png
要将 Delphi 中的 BMP 和 JPG 图像转换为带有透明通道的 PNG 格式,您可以使用 Graphics32 库。Graphics32 是一个免费的开源图形库,它提供了许多处理图像的工具和功能,包括将 BMP 和 JPG 转换为 PNG。
以下是将 BMP 和 JPG 转换为带有透明通道的 PNG 的代码示例:
```
uses
GR32, GR32_PNG, JPEG;
procedure BMPJPGToTransparentPNG(const Filename: string);
var
PNG: TPortableNetworkGraphic32;
BMP32: TBitmap32;
JPG: TJPEGImage;
begin
if FileExists(Filename) then
begin
if (AnsiLowerCase(ExtractFileExt(Filename)) = '.bmp') then
begin
BMP32 := TBitmap32.Create;
try
BMP32.LoadFromFile(Filename);
BMP32.DrawMode := dmBlend;
BMP32.MasterAlpha := $FF; // 设置透明度
BMP32.DrawTo(PNG);
finally
BMP32.Free;
end;
end
else if (AnsiLowerCase(ExtractFileExt(Filename)) = '.jpg') then
begin
JPG := TJPEGImage.Create;
try
JPG.LoadFromFile(Filename);
BMP32 := TBitmap32.Create;
try
BMP32.Assign(JPG);
BMP32.DrawMode := dmBlend;
BMP32.MasterAlpha := $FF; // 设置透明度
BMP32.DrawTo(PNG);
finally
BMP32.Free;
end;
finally
JPG.Free;
end;
end;
PNG.SaveToFile(ChangeFileExt(Filename, '.png'));
PNG.Free;
end;
end;
```
这个例子中,我们使用 TBitmap32 类型将 BMP 和 JPG 转换为带有透明通道的 PNG 格式,并将其保存到文件中。
请注意,BMP 和 JPG 图像本身可能没有透明通道,需要使用 GR32 库来添加透明通道。
阅读全文