如何禁用PNG的透明度

Lit*_*per 3 delphi png transparency delphi-7

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

TLa*_*ama 8

我不认为永久禁用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;
Run Code Online (Sandbox Code Playgroud)