终于, Delphi XE2 携带 GDI+ 库了
摘要:使用了较早的 http://www.progdigy.comuses Winapi.GDIPAPI, Winapi.GDIPOBJ{, Winapi.GDIPUTIL};procedure TForm1.FormPaint(Sender: TObject);var graphics: TGPGraphics; pen: TGPPen;begin graphics := TGPGraphics.Create(Canvas.Handle); pen := TGPPen.Create(MakeColor(255,0,0)); graphics.DrawRectangle(pen, Make...
阅读全文
posted @
2011-11-08 22:14
万一
阅读(17182)
推荐(0) 编辑
将图片转存为其它颜色格式(GDI+)
摘要:uses GdiPlus;procedure TForm1.Button1Click(Sender: TObject);var img: IGPImage; bit: IGPBitmap; g: IGPGraphics;begin img := TGPImage.Create('c:\temp\01.png'); bit := TGPBitmap.Create(img.Width, img.Height, PixelFormat1bppIndexed); g := TGPGraphics.Create(bit); g.DrawImage(img, 0, 0, img.Width
阅读全文
posted @
2011-07-20 21:09
万一
阅读(4053)
推荐(2) 编辑
GdiPlus[60]: 图像(十二) IGPImageAttributes 的更多方法
摘要:IGPImageAttributes 的方法:SetWrapMode() { 设置环绕模式 }这是 IGPImageAttributes 中出了 Clone 以外唯一个和颜色不相关方法.SetThreshold()、SetThreshold() { 设置、取消 "阈值" }取值范围: 0..1假如设置阀值为 0.5, 那么超过 128 的红色都变为 256, 少于 128 的红色都变为 0;绿色、...
阅读全文
posted @
2010-01-03 15:40
万一
阅读(4844)
推荐(0) 编辑
GdiPlus[59]: 图像(十一) IGPImageAttributes 之颜色矩阵(TGPColorMatrix)变换
摘要:IGPMatrix 矩阵 是个接口, 要通过 TGPMatrix 实例化后使用, 其内置了很多方法和属性.TGPColorMatrix 只是一个结构体, 除了矩阵数据(5*5)外, 它只有一个方法: TGPColorMatrix.SetToIdentity.通过 SetToIdentity 方法可初始化矩阵, 初始化后的数据是:┏ ┓┃1 0 0 0 0┃┃0 1 0 0 0┃┃0...
阅读全文
posted @
2010-01-01 22:52
万一
阅读(4285)
推荐(0) 编辑
GdiPlus[58]: 图像(十) IGPMetafile 特有的属性与方法
摘要:这包括://方法IGPMetafile.GetMetafileHeader; { 获取 Metafile 的 MetafileHeader }IGPMetafile.GetHEnhMetafile; { 获取增强型 Metafile 的 Windows 句柄 }IGPMetafile.PlayRecord(); { 播放单个图元文件记录 }//属性IGPMetafile.DownLevelRast...
阅读全文
posted @
2009-12-31 21:48
万一
阅读(3299)
推荐(0) 编辑
GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法
摘要:这包括://属性IGPBitmap.Pixels; { 获取或设置指定像素的颜色 }//方法IGPBitmap.SetResolution(); { 设置分辨率 }IGPBitmap.GetHBitmap(); { 创建 GDI 格式的 Bitmap 并返回句柄 }IGPBitmap.GetHIcon; { 创建 Icon 文件并返回句柄 }IGPBitmap.LockBits(); { 锁定对象...
阅读全文
posted @
2009-12-31 11:39
万一
阅读(6105)
推荐(0) 编辑
GdiPlus[56]: 图像(八) 关于多帧图像
摘要:TIFF 与 GIF 是多帧图像; GIF 还可以关联时间形成动画.在编码或解码多帧图像的过程中会用到下面两个常数值:FrameDimensionPage (用于 TIFF)FrameDimensionTime (用于 GIF)GDI+1.0 不能编码 GIF 动画; 但都能解析.解析 TIFF 多页图像的例子:uses GdiPlus;procedure TForm1.FormDblClick(...
阅读全文
posted @
2009-12-30 15:51
万一
阅读(5778)
推荐(0) 编辑
GdiPlus[55]: 图像(七) 图像编码的参数
摘要:通过 IGPImage.GetEncoderParameterList 可以获取指定编码格式的参数列表;通过此列表可以遍历出各参数的指针: PGPNativeEncoderParameter(TGPNativeEncoderParameter 的指针);TGPNativeEncoderParameter 是一个结构体:TGPNativeEncoderParameter = record Guid...
阅读全文
posted @
2009-12-29 17:25
万一
阅读(5978)
推荐(1) 编辑
GdiPlus[54]: 图像(六) 图像解码与编码
摘要:GDI+ 能够打开某种格式的图像, 就会有对应的解码器; 能够保存为某种格式, 也会有对应的编码器.下面程序通过 IGPImageCodecInfoArray 与 IGPImageCodecInfo 获取了 GDI+ 能够编码与解码的格式:uses GdiPlus;procedure TForm1.Button1Click(Sender: TObject);var Encoders, Decod...
阅读全文
posted @
2009-12-29 16:05
万一
阅读(3674)
推荐(0) 编辑
GdiPlus[53]: 图像(五) 图像的属性(图像元数据)
摘要:相关方法和属性:IGPImage.GetPropertyItem(); { 获取属性项 }IGPImage.SetPropertyItem(); { 设置属性项 }IGPImage.RemovePropertyItem(); { 删除属性项 }IGPImage.PropertyIdList; { 获取图像属性 ID 数组 }IGPImage.PropertyItems; { 获取图像属性集合 }...
阅读全文
posted @
2009-12-29 12:03
万一
阅读(4123)
推荐(1) 编辑
GdiPlus[52]: 图像(四) 图像信息
摘要:相关属性、方法、函数:IGPImage.Width; { 宽度(单位是像素) }IGPImage.Height; { 高度(单位是像素) }IGPImage.HorizontalResolution; { 获取水平分辨率(以"像素/英寸"为单位) }IGPImage.VerticalResolution; { 获取垂直分辨率(以"像素/英寸"为单位) }IGPImage.RawFormat; { ...
阅读全文
posted @
2009-12-28 21:14
万一
阅读(4188)
推荐(0) 编辑
GdiPlus[51]: 图像(三) 关于呈现
摘要:相关方法:IGPGraphics.DrawImage();IGPImage.GetThumbnailImage();IGPImage.RotateFlip();用 DrawImage 呈现图像时, 是否指定 Width 和 Height 的区别://如果图像的分辨率与 Graphics 的分辨率不一致, 则指定 Width、Height 是有必要的.uses GdiPlus;procedure T...
阅读全文
posted @
2009-12-28 19:57
万一
阅读(4457)
推荐(0) 编辑
GdiPlus[50]: 图像(二) 关于 Create
摘要:IGPImage 类提供的 Create 方法:Image := TGPImage.Create(文件(或流), Boolean);//其中的布尔值默认 False; 如果为 True 则使用文件(或流)中的已嵌入颜色管理信息来进行颜色校正.{ 示例1: 从文件建立 }var Graphics: IGPGraphics; Image: IGPImage;begin Image := TGPI...
阅读全文
posted @
2009-12-28 12:21
万一
阅读(4355)
推荐(0) 编辑
GdiPlus[49]: 图像(一) 概览
摘要:三个主要的图像相关接口是: IGPImage、IGPBitmap、IGPMetafile.IGPBitmap、IGPMetafile 都是从 IGPImage 继承, 分别用于处理位图和图元文件.还有从 IGPBitmap 继承的 IGPCachedBitmap 用于快速呈现图像.IGPImage 的方法与属性://方法IGPImage.Clone; { 克隆 }IGPImage.Save(); ...
阅读全文
posted @
2009-12-25 22:52
万一
阅读(4622)
推荐(0) 编辑
GdiPlus[48]: IGPMatrix 矩阵(三) 关于矩阵的旋转
摘要:矩阵旋转一个角度, 会关联到 M11、M12、M21、M22 四个数据, 计算公式如下:┏ ┓┃ cos(r) sin(r) 0┃┃-sin(r) cos(r) 0┃┃ DX DY 1┃┗ ┛//其中的 r 不是角度是弧度; 弧度的计算方法是: r = 角度 * Pi / 180.下面两段程序对上面的公式进行了对比测试://var m: IGPMatrix;begin m := TGP...
阅读全文
posted @
2009-12-25 11:29
万一
阅读(3386)
推荐(0) 编辑
GdiPlus[47]: IGPMatrix 矩阵(二)
摘要:IGPMatrix 的属性与方法://方法IGPMatrix.Reset; { 重置 Matrix 得到单位矩阵(斜对角线是1其他是0) }IGPMatrix.Translate(); { 平移 }IGPMatrix.Scale(); { 放缩 }IGPMatrix.Rotate(); { 旋转(沿(0,0)点, 顺时针) }IGPMatrix.RotateAt(); { 沿指定点, 顺时针旋转 ...
阅读全文
posted @
2009-12-24 22:46
万一
阅读(3788)
推荐(1) 编辑
GdiPlus[46]: IGPMatrix 矩阵(一)
摘要:认识矩阵, 譬如这是一个 2*3 (2 行 3 列) 的矩阵:┏ ┓┃3 1 4┃┃2 5 0┃┗ ┛矩阵相加的例子:┏ ┓ ┏ ┓ ┏ ┓┃1 0┃ ┃2 4┃ ┃3 4┃┃0 2┃ + ┃1 5┃ = ┃1 7┃┃1 3┃ ┃0 6┃ ┃1 9┃┗ ┛ ┗ ┛ ┗ ┛在 GDI+ 中应用的矩阵运算是 "相乘".矩阵相乘有个前提: 就是第一个矩阵的 "列数" 要和第二个...
阅读全文
posted @
2009-12-24 17:47
万一
阅读(2885)
推荐(0) 编辑
GdiPlus[45]: IGPGraphics (四) 关于呈现质量与合成模式
摘要:相关内容有:IGPGraphics.SmoothingMode; { 绘图质量 }IGPGraphics.InterpolationMode; { 插补模式 }IGPGraphics.CompositingMode; { 前景色与背景色的合成混合模式 }IGPGraphics.CompositingQuality; { 图像合成质量 }IGPGraphics.PixelOffsetMode; { ...
阅读全文
posted @
2009-12-22 22:53
万一
阅读(4384)
推荐(0) 编辑
GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat
摘要:IGPStringFormat 的方法和属性://方法:IGPStringFormat.GetTabStops(); { 获取制表位 }IGPStringFormat.SetTabStops(); { 设置制表位 }IGPStringFormat.SetDigitSubstitution(); { 指定用本地数字替换西方数字时使用的语言和方法 }IGPStringFormat.SetMeasura...
阅读全文
posted @
2009-12-22 18:04
万一
阅读(4288)
推荐(0) 编辑
GdiPlus[43]: IGPGraphics (二) 关于文本绘制
摘要:IGPGraphics 中绘制文本相关的方法和属性:IGPGraphics.DrawString(); { 绘制文本 }IGPGraphics.MeasureString(); { 获取指定格式的字符串需要的矩形 }IGPGraphics.MeasureCharacterRanges(); { 获取指定字符所在的区域 }IGPGraphics.DrawDriverString(); { 绘制可指定...
阅读全文
posted @
2009-12-22 13:54
万一
阅读(8710)
推荐(0) 编辑