文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 178
阅读 10
收藏 0
//正常显示图片, 没有变换
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 的回答.

本文转载自:http://www.cnblogs.com/del/archive/2008/02/06/1065275.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
GDI+图像处理学习笔记——改变图像的透明度

GDI+是WindowsXp和windows Server 2003中的一个子系统,主要用于处理系统的绘制消息。GDI+是GDI的扩展,其继承了GDI的有点并在其基础上进行了改进,包括增加了一些GDI无法绘制的图形函数,同...

晨曦之光
2012/05/23
491
0
ColorMatrix 彩色矩阵

选择自hbzxf 的 Blog 首先对装配脑袋给出上两片文章的友好回复,还有网友Fisherman一起探讨ColorMatrix话题表示感谢! ColorMatrix (彩色矩阵) 类位于System.Drawing.Imaging命名空间 先看看...

晨曦之光
2012/03/09
187
0
opengl超级宝典笔记——Using Opengl

第二章 使用OpenGL (一)OpenGl 的工作原理 OpenGL是过程式的而非描述性的图形API。开发人员只须规定必要的步骤去实现显示的效果。这些步骤包含了许多OpenGL的命令。这些命令用于绘制许多的...

Mario_Q
2013/09/02
0
0
使用GDI+绘制的360风格按钮控件

unit u360StyleButton; interface uses SysUtils, Classes, Controls, StdCtrls,Graphics, Messages, Windows, GDIPAPI, GDIPOBJ, GDIPUTIL; type TBtn360Style = class(TButton) private FB......

jingshishengxu
2016/06/14
27
0
C# WinForm开发系列 - GDI+

UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序。UI编程体现在两个方...

长征2号
2017/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

纹理与表面细节添加方法---凹凸映射

中国龙-扬科
15分钟前
0
0
20181115上课截图

小丑鱼00
22分钟前
0
0
初识css自定义属性

这算是一篇两篇文章译文的糅合体,旨在帮助理解css自定义属性。 今天,CSS预处理器是Web开发的标准。 预处理器的一个主要优点是它们使您能够使用变量, 这有助于您避免复制和粘贴代码,并简化...

嫣然丫丫丫
32分钟前
1
0
JAVA基础--session共享的前生今世

session共享的前生今世 Session及cookie基本概念及生命周期 session   当浏览器发起一个新的HTTP请求时,WEB服务端会主动创建一个session.并分配一个sessionID作为服务端识别客户端的一个标...

spinachgit
40分钟前
0
0
Deepin Linux 下把 UC 缓存视频变为 MP4 文件

本文是利用 FFMPEG 的功能实现的。 生成 file.txt文件 因为缓存文件都是数字,且文件夹内还有其他文件,包括 index.* 的文件。 $ ls -1v --hide=file.txt --hide=index* > file.txt 解释 ls...

不避风云
41分钟前
0
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部