我想將 PNG 影像轉換為具有透明度的灰度(不丟失 alpha 通道)。可能使用TBitmap和TPngImage組件或 Skia4Delphi。
從
到
但是怎么做?我正在使用 Delphi 10.3.3 VCL。
uj5u.com熱心網友回復:
使用 Skia4Delphi 庫:
uses
System.UITypes, Skia;
procedure TForm1.FormCreate(Sender: TObject);
var
LImage: ISkImage;
LSurface: ISkSurface;
LPaint: ISkPaint;
begin
LImage := TSkImage.MakeFromEncodedFile('..\..\delphi.png');
LPaint := TSkPaint.Create;
LPaint.ColorFilter := TSkColorFilter.MakeHighContrast(TSkHighContrastConfig.Create(True, TSkContrastInvertStyle.NoInvert, 0));
LSurface := TSkSurface.MakeRaster(LImage.Width, LImage.Height);
LSurface.Canvas.Clear(TAlphaColors.Null);
LSurface.Canvas.DrawImage(LImage, 0, 0, LPaint);
LSurface.MakeImageSnapshot.EncodeToFile('..\..\delphi-grayscale.png');
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/527486.html
