程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi GDI+ 學習記錄(31): 圖像顏色變換(TGPImageAttributes)

Delphi GDI+ 學習記錄(31): 圖像顏色變換(TGPImageAttributes)

編輯:Delphi

//正常顯示圖片, 沒有變換uses GDIPAPI, GDIPOBJ;
procedure TForm1.FormPaint(Sender: TObject);
var
 g: TGPGraphics;
 img: TGPImage;
begin
 g := TGPGraphics.Create(Canvas.Handle);
 img := TGPImage.Create('c:\temp\test.png'); {測試文件要存在}
 g.DrawImage(img, 0, 0, img.GetWidth, img.GetHeight);
 img.Free;
 g.Free;
end;

//效果圖:

//添加顏色變換uses GDIPAPI, GDIPOBJ;
procedure TForm1.FormPaint(Sender: TObject);
var
 g: TGPGraphics;
 img: TGPImage;
 imgAtt: TGPImageAttributes;
const
 ColorMatrix: TColorMatrix = (
  (1.0, 0.0, 0.0, 0.0, 0.0),
  (0.0, 1.0, 0.0, 0.0, 0.0),
  (0.0, 0.0, 1.0, 0.0, 0.0),
  (0.0, 0.0, 0.0, 1.0, 0.0),
  (1.0, 0.0, 0.0, 0.0, 1.0));
begin
 g := TGPGraphics.Create(Canvas.Handle);
 img := TGPImage.Create('c:\temp\test.png'); {測試文件要存在}
 imgAtt := TGPImageAttributes.Create;
 imgAtt.SetColorMatrix(colorMatrix, ColorMatrixFlagsDefault, ColorAdjustTypeDefault);
 g.DrawImage(
  img,
  MakeRect(0,0,img.GetWidth,img.GetHeight),
  0,
  0,
  img.GetWidth,
  img.GetHeight,
  UnitPixel,
  imgAtt);
 imgAtt.Free;
 img.Free;
 g.Free;
end;

//效果圖:

這個話題還有很多內容, 先弄這個例子算是給 M. Rokkaei 的回答.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved