delphi 把图片BMP 转为去底透明png格式
时间: 2023-08-05 10:37:03 浏览: 62
要将 Delphi 中的 BMP 图像转换为带有透明通道的 PNG 格式,您可以使用 Graphics32 库。Graphics32 是一个免费的开源图形库,它提供了许多处理图像的工具和功能,包括将 BMP 转换为 PNG。
以下是将 BMP 转换为带有透明通道的 PNG 的代码示例:
```
uses
GR32, GR32_PNG;
procedure BMPTOTransparentPNG(const BMP: TBitmap; const Filename: string);
var
PNG: TPortableNetworkGraphic32;
BMP32: TBitmap32;
begin
BMP32 := TBitmap32.Create;
try
BMP32.Assign(BMP);
BMP32.DrawMode := dmBlend;
BMP32.MasterAlpha := $FF; // 设置透明度
BMP32.DrawTo(PNG);
finally
BMP32.Free;
end;
PNG.SaveToFile(Filename);
PNG.Free;
end;
```
这个例子中,我们将 BMP 转换为 TBitmap32 类型,然后设置透明度,最后再将 BMP 转换为带有透明通道的 PNG 格式并保存到文件中。
请注意,BMP 图像本身可能没有透明通道,需要使用 GR32 库来添加透明通道。
相关问题
delphi 图片去底色转为透明png
可以通过以下步骤将 Delphi 图片去底色转为透明 PNG:
1. 加载源图片到 Delphi 中的 TBitmap 对象中,例如:
```delphi
var
bmp: TBitmap;
begin
bmp := TBitmap.Create;
try
bmp.LoadFromFile('source.bmp');
// 处理图片
finally
bmp.Free;
end;
end;
```
2. 设置 TBitmap 对象的透明色,例如:
```delphi
bmp.Transparent := True;
bmp.TransparentColor := bmp.Canvas.Pixels[0, bmp.Height - 1];
```
这里将透明色设置为图片左下角的像素颜色。
3. 创建 TPNGImage 对象,将 TBitmap 对象绘制到 TPNGImage 中,并保存为 PNG 文件,例如:
```delphi
var
png: TPNGImage;
begin
png := TPNGImage.CreateBlank(COLOR_RGBALPHA, 8, bmp.Width, bmp.Height);
try
png.Canvas.Draw(0, 0, bmp);
png.SaveToFile('output.png');
finally
png.Free;
end;
end;
```
这里创建了一个空白的 TPNGImage 对象,将颜色模式设置为 RGBA,然后将 TBitmap 对象绘制到 TPNGImage 中,并保存为 PNG 文件。
这样就完成了 Delphi 图片去底色转为透明 PNG 的操作。
Delphi BMP JPG去底转换成透明PNG
你可以使用 Delphi 中的 Graphics32 库来实现 BMP 和 JPG 转换成 PNG 并去除底色的操作。
以下是一个简单的代码示例:
```delphi
uses
GR32, GR32_Image, GR32_Transforms, GR32_Resamplers;
procedure ConvertToTransparentPNG(const inputFileName, outputFileName: string);
var
bmp: TBitmap32;
png: TPNGImage;
begin
// 加载图片
bmp := TBitmap32.Create;
bmp.LoadFromFile(inputFileName);
// 去除底色
ReplaceColor(bmp, clWhite32, clNone32);
// 转换成 PNG
png := TPNGImage.Create;
png.Assign(bmp);
// 保存 PNG
png.SaveToFile(outputFileName);
// 释放内存
bmp.Free;
png.Free;
end;
```
你可以调用 `ConvertToTransparentPNG` 函数来将 BMP 或 JPG 文件转换成透明的 PNG 文件。其中,`inputFileName` 是输入文件名,`outputFileName` 是输出文件名。这个函数会加载输入文件,去除底色,然后将其转换成 PNG 格式并保存到输出文件中。