如何完全禁用给定PNGObject的透明度?顺便说一下,我正在使用1.564版的PNGImage单元。

最佳答案

我认为不可能永久禁用TPNGObject图像透明度。或者至少我找不到执行此操作的属性。并且它应该已经由属性控制,因为当您分配或加载图像时,TPNGObject从分配的图像文件中获取图像参数(包括透明度)。

因此,作为一种解决方法,我宁愿在加载或分配图像后使用RemoveTransparency过程:

uses
  PNGImage;

procedure TForm1.Button1Click(Sender: TObject);
var
  PNGObject: TPNGObject;
begin
  PNGObject := TPNGObject.Create;
  try
    PNGObject.LoadFromFile('C:\Image.png');
    PNGObject.RemoveTransparency;
    PNGObject.Draw(Canvas, Rect(0, 0, PNGObject.Width, PNGObject.Height));
  finally
    PNGObject.Free;
  end;
end;

09-15 13:52