我正在使用此代码将透明png转换为32 bpp bmp。
var
Picture : TPicture;
BMP : TBitmap;
begin
Picture := TPicture.Create;
try
Picture.LoadFromFile('Foo.png');
BMP := TBitmap.Create;
try
BMP.PixelFormat:=pf32bit;
BMP.Width := Picture.Width;
BMP.Height := Picture.Height;
BMP.Canvas.Draw(0, 0, Picture.Graphic);
BMP.SaveToFile('Foo.bmp');
finally
BMP.Free;
end;
finally
Picture.Free;
end;
end;
图像转换为bmp但透明度丢失了,我缺少什么?
答案 0 :(得分:4)
尝试使用Assign
方法。这将保持透明度。
BMP := TBitmap.Create;
try
BMP.Assign(Picture.Graphic);
BMP.SaveToFile('Foo.bmp');
finally
BMP.Free;
end;