您的位置:首页 > 其它

GDI+ 学习记录(31): 图像颜色变换(TGPImageAttributes)

2008-02-06 10:41 543 查看
//正常显示图片, 没有变换
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 的回答.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: