繁体   English   中英

设置TPngImage的颜色类型

[英]Setting Color Type of TPngImage

我正在使用Delphi的TPngImage类将BMP图像( TBitmap )转换为PNG,方法是将相应的TBitmap对象及其中的位图图像分配给新创建的TPngImage对象。

我需要将颜色类型设置为COLOR_PALETTE以创建索引RGB PNG。

我没有设法找到可以执行它的TPngImage类的任何属性。

谁能帮我?

您可以在CreateBlank构造函数中指定颜色类型,而不是简单地刷新PNG图像画布上的位图。 例如:

var
  R: TRect;
  Bmp: TBitmap;
  Png: TPngImage;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.LoadFromFile('C:\Source.bmp');
    Png := TPngImage.CreateBlank(COLOR_PALETTE, 8, Bmp.Width, Bmp.Height);
    try
      R := Rect(0, 0, Bmp.Width, Bmp.Height);
      Png.Canvas.CopyRect(R, Bmp.Canvas, R);
      Png.SaveToFile('C:\Target.png');
    finally
      Png.Free;
    end;
  finally
    Bmp.Free;
  end;
end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM