随笔 - 2146  文章 - 96 评论 - 11722 trackbacks - 253

随笔分类 - 42.Delphi 与 GDI+
终于, 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 万一 阅读(12708) | 评论 (11) 编辑
将图片转存为其它颜色格式(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 万一 阅读(2897) | 评论 (5) 编辑
GdiPlus[60]: 图像(十二) IGPImageAttributes 的更多方法
摘要: IGPImageAttributes 的方法:SetWrapMode() { 设置环绕模式 }这是 IGPImageAttributes 中出了 Clone 以外唯一个和颜色不相关方法.SetThreshold()、SetThreshold() { 设置、取消 "阈值" }取值范围: 0..1假如设置阀值为 0.5, 那么超过 128 的红色都变为 256, 少于 128 的红色都变为 0;绿色、...阅读全文
posted @ 2010-01-03 15:40 万一 阅读(3276) | 评论 (1) 编辑
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 万一 阅读(2926) | 评论 (5) 编辑
GdiPlus[58]: 图像(十) IGPMetafile 特有的属性与方法
摘要: 这包括://方法IGPMetafile.GetMetafileHeader; { 获取 Metafile 的 MetafileHeader }IGPMetafile.GetHEnhMetafile; { 获取增强型 Metafile 的 Windows 句柄 }IGPMetafile.PlayRecord(); { 播放单个图元文件记录 }//属性IGPMetafile.DownLevelRast...阅读全文
posted @ 2009-12-31 21:48 万一 阅读(2065) | 评论 (2) 编辑
GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法
摘要: 这包括://属性IGPBitmap.Pixels; { 获取或设置指定像素的颜色 }//方法IGPBitmap.SetResolution(); { 设置分辨率 }IGPBitmap.GetHBitmap(); { 创建 GDI 格式的 Bitmap 并返回句柄 }IGPBitmap.GetHIcon; { 创建 Icon 文件并返回句柄 }IGPBitmap.LockBits(); { 锁定对象...阅读全文
posted @ 2009-12-31 11:39 万一 阅读(4239) | 评论 (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 万一 阅读(3496) | 评论 (2) 编辑
GdiPlus[55]: 图像(七) 图像编码的参数
摘要: 通过 IGPImage.GetEncoderParameterList 可以获取指定编码格式的参数列表;通过此列表可以遍历出各参数的指针: PGPNativeEncoderParameter(TGPNativeEncoderParameter 的指针);TGPNativeEncoderParameter 是一个结构体:TGPNativeEncoderParameter = record Guid...阅读全文
posted @ 2009-12-29 17:25 万一 阅读(4031) | 评论 (2) 编辑
GdiPlus[54]: 图像(六) 图像解码与编码
摘要: GDI+ 能够打开某种格式的图像, 就会有对应的解码器; 能够保存为某种格式, 也会有对应的编码器.下面程序通过 IGPImageCodecInfoArray 与 IGPImageCodecInfo 获取了 GDI+ 能够编码与解码的格式:uses GdiPlus;procedure TForm1.Button1Click(Sender: TObject);var Encoders, Decod...阅读全文
posted @ 2009-12-29 16:05 万一 阅读(2445) | 评论 (0) 编辑
GdiPlus[53]: 图像(五) 图像的属性(图像元数据)
摘要: 相关方法和属性:IGPImage.GetPropertyItem(); { 获取属性项 }IGPImage.SetPropertyItem(); { 设置属性项 }IGPImage.RemovePropertyItem(); { 删除属性项 }IGPImage.PropertyIdList; { 获取图像属性 ID 数组 }IGPImage.PropertyItems; { 获取图像属性集合 }...阅读全文
posted @ 2009-12-29 12:03 万一 阅读(2534) | 评论 (0) 编辑
GdiPlus[52]: 图像(四) 图像信息
摘要: 相关属性、方法、函数:IGPImage.Width; { 宽度(单位是像素) }IGPImage.Height; { 高度(单位是像素) }IGPImage.HorizontalResolution; { 获取水平分辨率(以"像素/英寸"为单位) }IGPImage.VerticalResolution; { 获取垂直分辨率(以"像素/英寸"为单位) }IGPImage.RawFormat; { ...阅读全文
posted @ 2009-12-28 21:14 万一 阅读(3084) | 评论 (1) 编辑
GdiPlus[51]: 图像(三) 关于呈现
摘要: 相关方法:IGPGraphics.DrawImage();IGPImage.GetThumbnailImage();IGPImage.RotateFlip();用 DrawImage 呈现图像时, 是否指定 Width 和 Height 的区别://如果图像的分辨率与 Graphics 的分辨率不一致, 则指定 Width、Height 是有必要的.uses GdiPlus;procedure T...阅读全文
posted @ 2009-12-28 19:57 万一 阅读(3210) | 评论 (7) 编辑
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 万一 阅读(3085) | 评论 (1) 编辑
GdiPlus[49]: 图像(一) 概览
摘要: 三个主要的图像相关接口是: IGPImage、IGPBitmap、IGPMetafile.IGPBitmap、IGPMetafile 都是从 IGPImage 继承, 分别用于处理位图和图元文件.还有从 IGPBitmap 继承的 IGPCachedBitmap 用于快速呈现图像.IGPImage 的方法与属性://方法IGPImage.Clone; { 克隆 }IGPImage.Save(); ...阅读全文
posted @ 2009-12-25 22:52 万一 阅读(3190) | 评论 (3) 编辑
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 万一 阅读(2170) | 评论 (3) 编辑
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 万一 阅读(2480) | 评论 (34) 编辑
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 万一 阅读(1891) | 评论 (1) 编辑
GdiPlus[45]: IGPGraphics (四) 关于呈现质量与合成模式
摘要: 相关内容有:IGPGraphics.SmoothingMode; { 绘图质量 }IGPGraphics.InterpolationMode; { 插补模式 }IGPGraphics.CompositingMode; { 前景色与背景色的合成混合模式 }IGPGraphics.CompositingQuality; { 图像合成质量 }IGPGraphics.PixelOffsetMode; { ...阅读全文
posted @ 2009-12-22 22:53 万一 阅读(2749) | 评论 (2) 编辑
GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat
摘要: IGPStringFormat 的方法和属性://方法:IGPStringFormat.GetTabStops(); { 获取制表位 }IGPStringFormat.SetTabStops(); { 设置制表位 }IGPStringFormat.SetDigitSubstitution(); { 指定用本地数字替换西方数字时使用的语言和方法 }IGPStringFormat.SetMeasura...阅读全文
posted @ 2009-12-22 18:04 万一 阅读(2849) | 评论 (0) 编辑
GdiPlus[43]: IGPGraphics (二) 关于文本绘制
摘要: IGPGraphics 中绘制文本相关的方法和属性:IGPGraphics.DrawString(); { 绘制文本 }IGPGraphics.MeasureString(); { 获取指定格式的字符串需要的矩形 }IGPGraphics.MeasureCharacterRanges(); { 获取指定字符所在的区域 }IGPGraphics.DrawDriverString(); { 绘制可指定...阅读全文
posted @ 2009-12-22 13:54 万一 阅读(5496) | 评论 (11) 编辑
GdiPlus[42]: IGPGraphics (一)
摘要: //方法IGPGraphics.DrawLine(); { 画线 }IGPGraphics.DrawLines(); { 画一组线 }IGPGraphics.DrawArc(); { 画弧线 }IGPGraphics.DrawBezier(); { 画 Bezier 线 }IGPGraphics.DrawBeziers(); { 画一组 Bezier 线 }IGPGraphics.DrawRect...阅读全文
posted @ 2009-12-21 19:49 万一 阅读(4462) | 评论 (0) 编辑
GdiPlus[41]: IGPRegion 区域
摘要: // 区域建立:TGPRegion.Create(); { 参数可以是矩形、路径、HRGN、区域数据, 或无参}TGPRegion.FromHRGN(); { 从 HRGN 初始化 }// 区域运算(矩形、路径、或另一个区域):IGPRegion.Intersect(); { 交集 }IGPRegion.Union(); { 并集 }IGPRegion.Exclude(); { 减去 }IGPRe...阅读全文
posted @ 2009-12-21 12:00 万一 阅读(2107) | 评论 (3) 编辑
GdiPlus[40]: 不该忽略的一些基础结构
摘要: 这些基础结构有: TGPSize、TGPSizeF、TGPPoint、TGPPointF、TGPRect、TGPRectF.它们自身提供了一些方便的功能, 如果早看看的话前面的很多代码能更精简些.TGPPoint 或 TGPPointF 方便的功能:1、因为已经重载了 Add、Subtract 运算符, 所以 "点" 可以 + 或 -;2、可使用 Equals 函数对比是否一致.var Pt1,...阅读全文
posted @ 2009-12-20 21:57 万一 阅读(1666) | 评论 (0) 编辑
GdiPlus[39]: IGPGraphicsPath (六) - 路径的辅助工具 IGPGraphicsPathIterator
摘要: IGPGraphicsPathIterator 能遍历路径中的子路径和路径标记.IGPGraphicsPathIterator.Count; { 点总数 }IGPGraphicsPathIterator.SubpathCount; { 子路径数 }IGPGraphicsPathIterator.HasCurve; { 是否包含曲线 }IGPGraphicsPathIterator.Rewind; ...阅读全文
posted @ 2009-12-19 22:42 万一 阅读(1663) | 评论 (2) 编辑
GdiPlus[38]: IGPGraphicsPath (五) 路径标记
摘要: IGPGraphicsPath.SetMarker //建立一个标记IGPGraphicsPath.ClearMarkers //取消全部标记在路径中每建立一个图形都可以同时做个 Marker,真正使用这些个标记时, 主要通过 IGPGraphicsPathIterator 的 NextMarker() 方法.下面是建立并遍历 Marker 的演示代码, 暂未使用 IGPGraphicsPathI...阅读全文
posted @ 2009-12-18 21:45 万一 阅读(1505) | 评论 (0) 编辑
GdiPlus[37]: IGPGraphicsPath (四) 路径变换
摘要: IGPGraphicsPath.Flatten(); //把路径中的曲线转换为近似直线段(路径中只有 Bezier 线和直线).IGPGraphicsPath.Outline(); //同 Flatten();IGPGraphicsPath.Warp(); //四边形或平行四边形扭曲. IGPGraphicsPath.Widen(); //把轮廓转换为范围.IGPGraphicsPath.Tran...阅读全文
posted @ 2009-12-17 20:46 万一 阅读(2265) | 评论 (0) 编辑
GdiPlus[36]: IGPGraphicsPath (三) 路径中的数据
摘要: IGPGraphicsPath.PointCount; // 点总数IGPGraphicsPath.PathPoints; // 点数组, 浮点型IGPGraphicsPath.PathPointsI; // 点数组, 整型IGPGraphicsPath.PathTypes; // 点类型数组IGPGraphicsPath.PathData; // 点与点类型数据, IGPPathData 类型...阅读全文
posted @ 2009-12-17 16:40 万一 阅读(1675) | 评论 (0) 编辑
GdiPlus[35]: IGPGraphicsPath (二) 命中测试
摘要: IGPGraphicsPath.IsVisible //指定点是否在路径内IGPGraphicsPath.IsOutlineVisible //指定点是否在路径轮廓上本例测试图:本例代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dial...阅读全文
posted @ 2009-12-17 14:21 万一 阅读(1903) | 评论 (0) 编辑
GdiPlus[34]: IGPGraphicsPath (一)
摘要: 路径是一组图形命令, 它能容纳所有基本图形和文本、子路径:IGPGraphicsPath.AddLine();IGPGraphicsPath.AddLines();IGPGraphicsPath.AddArc();IGPGraphicsPath.AddBezier();IGPGraphicsPath.AddBeziers();IGPGraphicsPath.AddCurve();IGPGraphi...阅读全文
posted @ 2009-12-17 13:53 万一 阅读(2324) | 评论 (0) 编辑
GdiPlus[33]: 基本绘图与填充命令
摘要: DrawLine();DrawLines();DrawArc();DrawBezier();DrawBeziers();DrawRectangle();DrawRectangles();DrawEllipse();DrawPie();DrawPolygon();DrawCurve();DrawClosedCurve();FillRectangle();FillRectangles();FillPo...阅读全文
posted @ 2009-12-16 21:31 万一 阅读(4281) | 评论 (2) 编辑
GdiPlus[32]: IGPPen: LineJoin、MiterLimit
摘要: LineJoin 测试效果图:LineJoin 测试代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);const Pts: array[0..2] of TGPPoint = ((X:90;Y:80), (X:240;Y:30), (X:240;Y:80));var Graphics: IGPGraphics; Pen: ...阅读全文
posted @ 2009-12-16 15:35 万一 阅读(1215) | 评论 (0) 编辑
GdiPlus[31]: IGPPen: 自定义线帽
摘要: 自定义线帽可以通过两个接口: IGPCustomLineCap、IGPAdjustableArrowCap.后者继承与前者, 专用于修改箭头线帽.IGPAdjustableArrowCap 测试效果图:IGPAdjustableArrowCap 测试代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);var Graphics: ...阅读全文
posted @ 2009-12-16 15:14 万一 阅读(1407) | 评论 (0) 编辑
GdiPlus[30]: IGPPen: 线帽
摘要: StartCap 和 EndCap 属性分别用来读写两段的线帽, 测试图:StartCap 和 EndCap 测试代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);const CapArr: array[0..8] of Byte = (0, 1, 2, 3, $10, $11, $12, $13, $14);var Gra...阅读全文
posted @ 2009-12-16 12:21 万一 阅读(1335) | 评论 (0) 编辑
GdiPlus[29]: IGPPen: 虚线样式
摘要: 通过画笔的 DashStyle 属性可设置或读取虚线样式.通过 SetDashPattern 方法或 DashPattern 属性可自定义虚线样式.通过 DashPattern 属性还可以读出已有样式定义时的数组.自定义虚线样式样式时, 需要元素数是双数的数组数组, 元素值依次表示实线与空白的长度.通过 DashOffset 属性可设置虚线偏移.系统提供的虚线样式效果:自定义的两种样式效果:虚线偏...阅读全文
posted @ 2009-12-16 00:56 万一 阅读(1883) | 评论 (0) 编辑
GdiPlus[28]: IGPPen: 建立复合画笔
摘要: 设置画笔的 CompoundArray 属性可得到复合画笔.它对应的类型是 IGPCompoundArray (IGPCompoundArray = IGPArray<Single>).如果复合画笔是 X 条线, 则数组需要 2*X 个元素; 元素从外向里分别表示线的起点和终点的比例值.uses GdiPlus;procedure TForm1.FormPaint(Sender: TObje...阅读全文
posted @ 2009-12-16 00:22 万一 阅读(1202) | 评论 (0) 编辑
GdiPlus[27]: IGPPen: Alignment (画笔对齐)
摘要: uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);var Graphics: IGPGraphics; BlackPen, GreenPen: IGPPen; Rect: TGPRect;begin Rect.Initialize(20, 20, 80, 80); Graphics := TGPGraphics.Create...阅读全文
posted @ 2009-12-16 00:00 万一 阅读(1013) | 评论 (0) 编辑
GdiPlus[26]: IGPPen: 用画刷建立画笔
摘要: Color 是画笔的基本属性, 比较有意思的是可以通过画刷来建立画笔.五种画刷都可以, 但使用实心画刷就没有意义了; 建立后, 通过画笔的 PenType 能知道是通过什么画刷建立的; 也能通过 Brush 属性获取回画刷.下面的例子只是测试了通过阴影画刷建立画笔:uses GdiPlus, GdiPlusHelpers;procedure TForm1.FormPaint(Sender: TOb...阅读全文
posted @ 2009-12-15 23:48 万一 阅读(1355) | 评论 (1) 编辑
GdiPlus[25]: IGPInstalledFontCollection: 获取已安装的字体列表
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; Button2: TButt...阅读全文
posted @ 2009-12-15 16:41 万一 阅读(1193) | 评论 (5) 编辑
GdiPlus[24]: IGPPrivateFontCollection: 分别从文件和内存加载字体
摘要: IGPPrivateFontCollection.AddFontFile: 从文件加载字体;IGPPrivateFontCollection.AddMemoryFont: 从内存加载字体AddFontFile 测试:uses GdiPlus;function GetFontsDirectory: string;var Len: Integer; buf: array[0..MAX_PATH-1...阅读全文
posted @ 2009-12-15 16:34 万一 阅读(1763) | 评论 (0) 编辑
GdiPlus[23]: IGPFontFamily
摘要: IGPFontFamily 的基本使用:uses GdiPlus, GdiPlusHelpers;procedure TForm1.FormPaint(Sender: TObject);const Pt: TGPPointF = (X:10; Y:10);var FontFamily: IGPFontFamily; Font: IGPFont; Brush: IGPSolidBrush;b...阅读全文
posted @ 2009-12-15 16:17 万一 阅读(1624) | 评论 (0) 编辑
GdiPlus[22]: IGPFont
摘要: 测试效果图:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);var Graphics: IGPGraphics; Brush: IGPSolidBrush; Pt: TGPPointF; Font: IGPFont;begin Graphics := TGPGraphics.Create(Handle); Pt.Init...阅读全文
posted @ 2009-12-15 14:33 万一 阅读(1491) | 评论 (0) 编辑
GdiPlus[21]: IGPPathGradientBrush 之 InterpolationColors
摘要: 测试效果图:测试代码:uses GdiPlus, GdiPlusHelpers;procedure TForm1.FormPaint(Sender: TObject);const C1 = $FF000000; C2 = $FFFF0000; C3 = $FFFFFF00; C4 = $FFFF0000; C5 = $FF000000;var Brush: IGPPathGradien...阅读全文
posted @ 2009-12-15 13:37 万一 阅读(1004) | 评论 (0) 编辑
GdiPlus[20]: IGPPathGradientBrush 之 SetFocusScales
摘要: 测试效果图:测试代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);var Graphics: IGPGraphics; Brush: IGPPathGradientBrush; Rect: TGPRect; Path: IGPGraphicsPath;begin Graphics := TGPGraphics.Crea...阅读全文
posted @ 2009-12-15 11:58 万一 阅读(975) | 评论 (0) 编辑
GdiPlus[19]: IGPPathGradientBrush 之 SetCenterPoint
摘要: 测试效果图:测试代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure For...阅读全文
posted @ 2009-12-15 11:40 万一 阅读(922) | 评论 (0) 编辑
GdiPlus[18]: IGPPathGradientBrush 之 CenterColor、SurroundColors
摘要: 最简单的 IGPPathGradientBrush 就是有一个中心颜色和一组周边颜色的渐变.这里牵扯到 CenterColor、SurroundColors 属性和 SetSurroundColors 方法.测试一效果图:测试一代码://使用 SetSurroundColors 方法设置周边色组:uses GdiPlus, GdiPlusHelpers;procedure TForm1.FormP...阅读全文
posted @ 2009-12-15 11:17 万一 阅读(1159) | 评论 (0) 编辑
GdiPlus[17]: IGPLinearGradientBrush 的其他方法和属性
摘要: LinearColors //属性; 获取或设置渐变的起始色和结束色.Rectangle //属性; 获取定义渐变的起始点和终结点的矩形区域.WrapMode //属性; 获取或设置 WrapMode 枚举, 指定画刷环绕模式; 感觉它没有存在的必要.TranslateTransform //方法; 平移.ScaleTransform //方法; 放缩.RotateTransform //方法; ...阅读全文
posted @ 2009-12-14 22:53 万一 阅读(1228) | 评论 (0) 编辑
GdiPlus[16]: IGPLinearGradientBrush 之 SetBlendBellShape、SetBlendTriangularShape
摘要: SetBlendBellShape 方法: 创建基于钟形曲线的渐变过渡过程;SetBlendTriangularShape 方法: 创建一个从中心色向两端单个颜色线性过渡的线性渐变过程.两个方法好像区别不大.SetBlendBellShape 测试效果图:SetBlendTriangularShape 测试效果图:SetBlendBellShape 测试代码:uses GdiPlus;proced...阅读全文
posted @ 2009-12-14 22:19 万一 阅读(1239) | 评论 (3) 编辑
GdiPlus[15]: IGPLinearGradientBrush 之 GammaCorrection
摘要: GammaCorrection 属性是一个 Boolean 值, 默认 False; 为 True 表示启用了灰度校正.测试图中的第二个图形使用了灰度校正:测试代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);var Graphics: IGPGraphics; Rect: TGPRectF; Brush: IGPLine...阅读全文
posted @ 2009-12-14 21:54 万一 阅读(1029) | 评论 (0) 编辑
GdiPlus[14]: IGPLinearGradientBrush 之 Blend
摘要: IGPLinearGradientBrush.Blend 属性对应一个 IGPBlend 对象;TGPBlend.Create(Factors, Positions); 中的两个参数都是 Single 类型的数组, Factors 颜色强度因子, Positions 是位置偏移比例.对于两种颜色的渐变, 上面两个数组都应是三个元素构成; 默认效果是 [0, 0.5, 1].测试效果图:测试代码:u...阅读全文
posted @ 2009-12-14 21:35 万一 阅读(1291) | 评论 (4) 编辑
GdiPlus[13]: IGPLinearGradientBrush 之多色渐变
摘要: 多色渐变需要: 一个 "颜色数组" 和一个 "位置数组" (0-1 之间的位置比例);IGPLinearGradientBrush.InterpolationColors 属性对应一个 IGPColorBlend 对象, 此对象专门用于装载上面两个数组.IGPColorBlend 的 Colors 和 Positions 两个属性分别对应这两个数组.下面的三个示例的结果都是一样的.测试效果图:测试...阅读全文
posted @ 2009-12-14 19:48 万一 阅读(1620) | 评论 (5) 编辑
GdiPlus[12]: IGPLinearGradientBrush 的其他构建方式
摘要: 第二种构建方式: TGPLinearGradientBrush.Create(矩形, 颜色1, 颜色2, 渐变模式);第三种构建方式: TGPLinearGradientBrush.Create(矩形, 颜色1, 颜色2, 角度);第三种构建方式中的 "角度"(X 轴, 顺时针)相当于是对渐变模式的自定义, 下面两段测试代码的结果是一样的.另外, 第三种构建方式还有一个默认为 False 的 Bo...阅读全文
posted @ 2009-12-14 16:51 万一 阅读(1172) | 评论 (0) 编辑
GdiPlus[11]: IGPLinearGradientBrush 的第一种构建方式
摘要: 第一种构建方式: TGPLinearGradientBrush.Create(点1, 点2, 颜色1, 颜色2);本例测试效果图:为了方便测试, 在 Unit2 单元从 TShape 继承了一个 TMyShape 类, 用来模拟一个可活动的颜色点.其主要功能: 1、可用鼠标左键拖动; 2、可用鼠标右键改变颜色.Unit2 的代码:unit Unit2;interfaceuses Class...阅读全文
posted @ 2009-12-14 15:43 万一 阅读(1213) | 评论 (1) 编辑
GdiPlus[10]: IGPTextureBrush 的构建参数
摘要: IGPTextureBrush 对应的 TGPTextureBrush 类的 Create 方法有很多重载.参数中可有 TGPWrapMode 和 IGPImageAttributes, 但测试中发现 IGPImageAttributes 在这里并不好用.比较有意义是: 可以从建立参数中指定原始图片的范围.测试效果图:uses GdiPlus;procedure TForm1.FormPaint(...阅读全文
posted @ 2009-12-14 01:49 万一 阅读(1146) | 评论 (1) 编辑
GdiPlus[9]: IGPTextureBrush 变换
摘要: TranslateTransform: 平移;ScaleTransform: 放缩;RotateTransform: 旋转;通过 MultiplyTransform 方法和 Transform 属性, 能完成包括上述变换在内的更多变换.ResetTransform 方法是重置变换.这些方法和属性, 在 IGPGraphics 中都有, 在 IGPGraphics 中详细学习更合适些.测试效果图:代...阅读全文
posted @ 2009-12-14 00:19 万一 阅读(1376) | 评论 (1) 编辑
GdiPlus[8]: IGPTextureBrush 之 WrapMode 属性
摘要: 示例图片:示例代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);var Graphics: IGPGraphics; Image: IGPImage; Brush: IGPTextureBrush; Rect: TGPRect;begin ChDir('C:\GdiPlusImg\'); Image := TGPIm...阅读全文
posted @ 2009-12-13 22:05 万一 阅读(1419) | 评论 (0) 编辑
GdiPlus[7]: IGPSolidBrush、IGPHatchBrush
摘要: IGPSolidBrush(实心画刷)只是在 IGPBrush 的基础上增加了一个可读写的 IGPSolidBrush.Color 属性.IGPHatchBrush(阴影画刷)有三个只读属性: 阴影样式、前景色、背景色; 它们也刚好是 Create 方法的参数.Create 也可只有前两个参数, 此时背景色默认为不透明的黑色.下面的例子展示了阴影画刷的所有阴影样式, 效果图如下:unit Unit...阅读全文
posted @ 2009-12-13 20:51 万一 阅读(1449) | 评论 (0) 编辑
GdiPlus[6]: 五种画刷总览
摘要: GDI+ 有五种画刷:实心画刷: IGPSolidBrush阴影画刷: IGPHatchBrush纹理画刷: IGPTextureBrush线性渐变画刷: IGPLinearGradientBrush路径渐变画刷: IGPPathGradientBrush它们分别有对应的实现类:TGPSolidBrushTGPHatchBrushTGPTextureBrushTGPLinearGradientBr...阅读全文
posted @ 2009-12-13 12:44 万一 阅读(2415) | 评论 (4) 编辑
GdiPlus[5]: IGPColors
摘要: IGPColors 是一个泛型数组应用于 TGPColor 的接口, 需要一组颜色时可以用它; 当然用其他方法也不麻烦, 它在整个体系中并不重要.本例把 TGPColor 中的 141 个颜色常量装载到一个 IGPColors, 顺便看看这些颜色.运行效果图:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject);const Count ...阅读全文
posted @ 2009-12-12 00:25 万一 阅读(1588) | 评论 (0) 编辑
GdiPlus[4]: TGPColor
摘要: TGPColor 是 GdiPlus 的颜色主体, 它虽然是个结构体, 但和类一样, 方法、属性一应俱全.之所以没有把它定义为类或接口, 我觉得主要是它需要和一个整数值进行隐式转换, 这要用到运算符重载(暂时只有结构有).TGPColor 的多种构建方法:var c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11: TGPColor;begin c1 :=...阅读全文
posted @ 2009-12-12 00:04 万一 阅读(2230) | 评论 (5) 编辑
GdiPlus[3]: 关于 GdiPlusHelpers 单元
摘要: 本套接口只有两个单元: GdiPlus, GdiPlusHelpers; 主要的是前者, GdiPlusHelpers 的作用是通过 Helper 技术给 VCL 体系中的 TCanvas、TGraphicControl、TCustomControl、TBitmap 类补充添加 ToGPGraphics 方法, 以方便获取 IGPGraphics.在很多时候我们并不需要它, 这时也不需要 uses...阅读全文
posted @ 2009-12-11 13:55 万一 阅读(2170) | 评论 (16) 编辑
GdiPlus[2]: 获取绘图表面(Graphics)
摘要: 绘图表面(Graphics, 这在 VCL 体系中叫 Canvas), 在 GdiPlus 中有四种获取方法:1、通过窗口句柄获取;2、通过窗口的 Canvas.Handle 获取;3、通过 GdiPlus 利用 Helper 技术给部分 VCL 对象添加的 ToGPGraphics 方法获取;4、通过图像对象获取.本例效果图:unit Unit1;interfaceuses Windows, ...阅读全文
posted @ 2009-12-11 13:25 万一 阅读(3260) | 评论 (0) 编辑
GdiPlus[1]: 一个给 Delphi 提供的、新的 GDI+ 接口, 很好用!
摘要: 尽管 GDI+ 已经有近 10 年的历史(随 Win2000 推出), 尽管 DirectX 如日中天, 但在 Windows 7 之前的版本下进行 2D 绘图还是离不开它, 微软也没有停止对它的升级, 随 Vista 的 GDI 版本是 1.1(6.0.xxxx.x), 新增了 Blur 等功能.不过 Win7 已经有了 Direct D2D1, Delphi 也同步有了 Direct2D 支持...阅读全文
posted @ 2009-12-11 11:54 万一 阅读(12589) | 评论 (48) 编辑
如何在 GDI+ 中指定旋转中心 - 回复 "wuheng66888" 的问题
摘要: 问题来源: http://www.cnblogs.com/del/archive/2009/01/23/1017571.html#1437673 本来 wuheng66888 需要的是输出旋转的文本, 下面的例子只是转了一个矩形; 因为 GDI+ 的旋转理念是旋转画布, 所以都是一样的. 本例效果图: 代码文件: unit Unit1; interface uses Windo...阅读全文
posted @ 2009-01-23 17:00 万一 阅读(4011) | 评论 (2) 编辑
如何让 TGPImage 直接从流中加载图片? - 回复 "datouxuke " 的问题
摘要: 问题来源: http://www.cnblogs.com/del/archive/2009/01/23/1232856.html#post 方法一: Delphi 的 TBitmap 类可以方便地操作流, 如果能让 TGPImage 和 TBitmap 沟通起来就好了; TGPImage 有一个子类 TGPBitmap 可以和 TBitmap 沟通... ok 了! 代码如下: uses G...阅读全文
posted @ 2009-01-23 11:20 万一 阅读(4838) | 评论 (17) 编辑
下载并显示网上的图片 - 回复 "fancy" 的问题
摘要: 问题来源: http://www.cnblogs.com/del/archive/2008/07/29/1254211.html#1271136 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dia...阅读全文
posted @ 2008-07-29 18:13 万一 阅读(3352) | 评论 (13) 编辑
再学 GDI+[103]: TGPImage(23) - 提取 GIF 动画的每一帧
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; L...阅读全文
posted @ 2008-07-16 13:07 万一 阅读(4277) | 评论 (35) 编辑
再学 GDI+[102]: TGPImage(22) - 获取所有解码器的详细信息
摘要: 本例运行结果: Clsid: {557CF400-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CAB-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in BMP Codec DllName: FormatDescription: BMP FilenameExtension: *.BMP;*.DIB;*....阅读全文
posted @ 2008-07-10 15:32 万一 阅读(1847) | 评论 (0) 编辑
再学 GDI+[101]: TGPImage(21) - 获取所有编码器的详细信息
摘要: 本例运行结果: Clsid: {557CF400-1A04-11D3-9A73-0000F81EF32E} FormatID: {B96B3CAB-0728-11D3-9D7B-0000F81EF32E} CodecName: Built-in BMP Codec DllName: FormatDescription: BMP FilenameExtension: *.BMP;*.DIB;*....阅读全文
posted @ 2008-07-10 15:26 万一 阅读(1615) | 评论 (0) 编辑
再学 GDI+[100]: TGPImage(20) - 替换颜色
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TeCanvas; type TForm1 = class(TForm) ButtonColor1:...阅读全文
posted @ 2008-07-08 15:40 万一 阅读(3272) | 评论 (8) 编辑
再学 GDI+[99]: TGPImage(19) - 把图像转存为其他格式
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) OpenDialog1: ...阅读全文
posted @ 2008-07-07 18:56 万一 阅读(4256) | 评论 (15) 编辑
再学 GDI+[98]: TGPImage(18) - 获取 GDI+ 图像格式对应的 GUID
摘要: 和在 Net 中不同的是, 在具体指定图像格式时, 这里常常需要的不是格式名称, 而是格式的 GUID; 知道了格式名称, 用 GetEncoderClsid 函数可以获取格式的 GUID; GetEncoderClsid 函数来自 GDIPUTIL 单元, 本例并没有用到前面一直不可或缺的 GDIPOBJ、GDIPAPI 单元. 如果要获取 image/bmp、image/jpeg、image...阅读全文
posted @ 2008-07-07 10:51 万一 阅读(2155) | 评论 (2) 编辑
再学 GDI+[97]: TGPImage(17) - 获取 GDI+ 所支持的可编码、可解码的图像格式
摘要: 其实这和 TGPImage 是没有关系的. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) M...阅读全文
posted @ 2008-07-07 10:16 万一 阅读(1926) | 评论 (0) 编辑
再学 GDI+[96]: TGPImage(16) - 所谓剪取颜色
摘要: {红色增加绿色的 m 倍、蓝色的 n 倍} ColorMatrix: TColorMatrix = ( (1.0, 0.0, 0.0, 0.0, 0.0), (m, 1.0, 0.0, 0.0, 0.0), (n, 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)); ...阅读全文
posted @ 2008-07-07 00:12 万一 阅读(1592) | 评论 (0) 编辑
再学 GDI+[95]: TGPImage(15) - 颜色的旋转变换
摘要: 我通过做此例同时证实了 GDI+ 可以直接显示 png、gif、tif 格式的透明图片. //红色与绿色绕蓝色旋转(r 是弧度) ColorMatrix: TColorMatrix = ( (Cos(r), Sin(r), 0.0, 0.0, 0.0), (-Sin(r), Cos(r), 0.0, 0.0, 0.0), (0.0, 0.0, 1.0, ...阅读全文
posted @ 2008-07-06 21:53 万一 阅读(2105) | 评论 (7) 编辑
再学 GDI+[94]: TGPImage(14) - 增减图像的红、绿、蓝三色的成分
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) TrackBar1: TT...阅读全文
posted @ 2008-07-06 00:09 万一 阅读(1577) | 评论 (3) 编辑
再学 GDI+[93]: TGPImage(13) - 调整图像红、绿、蓝三原色及透明度
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) TrackBar1: TT...阅读全文
posted @ 2008-07-05 20:54 万一 阅读(2067) | 评论 (1) 编辑
再学 GDI+[92]: TGPImage(12) - 调整图像透明度
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) TrackBar1: TT...阅读全文
posted @ 2008-07-05 00:22 万一 阅读(3383) | 评论 (3) 编辑
再学 GDI+[91]: TGPImage(11) - 转灰度图像
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-07-04 23:45 万一 阅读(1983) | 评论 (0) 编辑
再学 GDI+[90]: TGPImage(10) - 获取图像的调色板信息
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) DrawGrid1: TDraw...阅读全文
posted @ 2008-07-04 02:11 万一 阅读(2238) | 评论 (2) 编辑
再学 GDI+[89]: TGPImage(9) - 图像缩放时的质量(算法)
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ...阅读全文
posted @ 2008-07-03 11:41 万一 阅读(4335) | 评论 (2) 编辑
再学 GDI+[88]: TGPImage(8) - 放大镜
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-07-03 00:30 万一 阅读(2702) | 评论 (6) 编辑
再学 GDI+[87]: TGPImage(7) - 调整图像大小
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObj...阅读全文
posted @ 2008-07-02 18:33 万一 阅读(3674) | 评论 (15) 编辑
再学 GDI+[86]: TGPImage(6) - 拖动图像
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObj...阅读全文
posted @ 2008-07-02 15:50 万一 阅读(3241) | 评论 (22) 编辑
一个用 GDI+ 给图片添加花边的例子 - 给 "sky123" 做的
摘要: 按 "sky123" 的样图要求, 花边必须是透空的, 最好使用图元文件; 本例没有做完保存功能, 也没有实现整个图片的调整功能. 因为有测试图片, 给个源码下载吧: http://www.cnblogs.com/Files/del/sky123.rar 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysU...阅读全文
posted @ 2008-07-01 17:31 万一 阅读(3547) | 评论 (2) 编辑
再学 GDI+[85]: TGPImage(5) - RotateFlip - 旋转与镜像
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ...阅读全文
posted @ 2008-07-01 16:21 万一 阅读(3408) | 评论 (3) 编辑
再学 GDI+[84]: TGPImage(4) - 把图像显示在指定的矩形中
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-07-01 15:47 万一 阅读(2546) | 评论 (0) 编辑
再学 GDI+[83]: TGPImage(3) - 平行四边形变换
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-07-01 14:48 万一 阅读(2036) | 评论 (5) 编辑
再学 GDI+[82]: TGPImage(2) - GetThumbnailImage - 略缩图
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-07-01 12:40 万一 阅读(2549) | 评论 (2) 编辑
再学 GDI+[81]: TGPImage(1) - 显示图像
摘要: 已知 GDI+ 可以支持的图像格式: BMP、JPEG、GIF、TIFF、PNG、ICO、WMF、EMF TGPGraphics.DrawImage 函数有太多重载了, 一起列在这吧: function DrawImage(image: TGPImage; const point: TGPPointF): TStatus; overload; function DrawImage(image...阅读全文
posted @ 2008-07-01 09:54 万一 阅读(3873) | 评论 (5) 编辑
再学 GDI+[80]: 区域(9) - GetHRGN - 转为 GDI 的区域句柄
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) procedure For...阅读全文
posted @ 2008-06-30 21:59 万一 阅读(1904) | 评论 (0) 编辑
再学 GDI+[79]: 区域(8) - Transform - 区域的 Matrix 变换
摘要: 矩阵变换(Matrix)功能很强大, 这里只是旋转了一下. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = ...阅读全文
posted @ 2008-06-30 21:44 万一 阅读(2178) | 评论 (0) 编辑
再学 GDI+[78]: 区域(7) - Translate - 区域的平移变换
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) TrackBar1: TT...阅读全文
posted @ 2008-06-30 21:25 万一 阅读(1652) | 评论 (0) 编辑
再学 GDI+[77]: 区域(6) - GetRegionScans - 获取区域中的所有矩形
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormPaint(Sen...阅读全文
posted @ 2008-06-30 20:48 万一 阅读(2142) | 评论 (2) 编辑
再学 GDI+[76]: 区域(5) - GetDataSize、GetData
摘要: 本来这个例子是要获取区域的详细信息的, 但非常遗憾, 这个版本的 GDI+ 的头文件少定义了一个 TRegionData 类! 不过也不要紧, 通过 TRegionData 主要也是获取区域中的矩形数据, GetRegionScans 函数可以完成这个任务! 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysU...阅读全文
posted @ 2008-06-30 20:05 万一 阅读(1458) | 评论 (0) 编辑
再学 GDI+[75]: 区域(4) - 根据区域剪切画板
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-06-30 16:24 万一 阅读(2089) | 评论 (0) 编辑
再学 GDI+[74]: 区域(3) - IsVisible
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) procedure For...阅读全文
posted @ 2008-06-30 14:41 万一 阅读(1432) | 评论 (0) 编辑
再学 GDI+[73]: 区域(2) - 区域运算
摘要: Intersect {交集} Union {联合} Xor_ {减去交集} Exclude {减去} Complement {不相交} //GDI+ 的区域能和矩形、路径、另一个区域三种对象进行运算. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Vari...阅读全文
posted @ 2008-06-30 13:10 万一 阅读(2048) | 评论 (0) 编辑
再学 GDI+[72]: 区域(1) - 建立区域
摘要: 建立 GDI+ 的区域有五种办法: 1、根据一个矩形建立(矩形区域); 2、根据路径建立; 3、根据 GDI 区域的句柄建立; 4、根据从区域中获取的数据建立; 5、无参数建立. 本例演示了前三种建立方法. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, G...阅读全文
posted @ 2008-06-29 21:48 万一 阅读(2042) | 评论 (0) 编辑
再学 GDI+[71]: 路径画刷(11) - RotateTransform、ScaleTransform 等变换
摘要: RotateTransform {旋转} ScaleTransform {缩放} TranslateTransform {平移} SetTransform {综合的矩阵变换} ResetTransform {取消变换} 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysU...阅读全文
posted @ 2008-06-29 19:45 万一 阅读(2487) | 评论 (1) 编辑
再学 GDI+[70]: 路径画刷(10) - SetBlend
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Tra...阅读全文
posted @ 2008-06-29 17:50 万一 阅读(1428) | 评论 (0) 编辑
再学 GDI+[69]: 路径画刷(9) - SetInterpolationColors 与 SetSurroundColors 的区别
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) pro...阅读全文
posted @ 2008-06-29 15:06 万一 阅读(1857) | 评论 (0) 编辑
再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape
摘要: 本例效果图(颜色失真严重, 因为 GIF 最多只能接受 256 中颜色): 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type ...阅读全文
posted @ 2008-06-28 22:30 万一 阅读(1574) | 评论 (0) 编辑
再学 GDI+[67]: 路径画刷(7) - 画个五角星
摘要: 本例效果图: 代码1: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObjec...阅读全文
posted @ 2008-06-28 21:41 万一 阅读(2027) | 评论 (0) 编辑
再学 GDI+[66]: 路径画刷(6) - SetInterpolationColors、GetRectangle
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-06-28 20:00 万一 阅读(1438) | 评论 (4) 编辑
再学 GDI+[65]: 路径画刷(5) - SetGammaCorrection
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-06-28 18:28 万一 阅读(1059) | 评论 (0) 编辑
再学 GDI+[64]: 路径画刷(4) - 还是 SetCenterColor、SetSurroundColors
摘要: 在本例中没有指定 CenterColor, 将默认白色; SurroundColors 原来是对应路径中的点(但按下面的做法在椭圆里不灵). 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dial...阅读全文
posted @ 2008-06-28 13:50 万一 阅读(1216) | 评论 (0) 编辑
再学 GDI+[63]: 路径画刷(3) - SetFocusScales、GetFocusScales
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, ExtCtrls, TeCanvas, ComCtrls; type TForm1 = ...阅读全文
posted @ 2008-06-26 13:19 万一 阅读(1198) | 评论 (0) 编辑
再学 GDI+[62]: 路径画刷(2) - SetCenterPoint、GetCenterPoint
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, ExtCtrls, TeCanvas; type TForm1 = class(TFor...阅读全文
posted @ 2008-06-26 11:00 万一 阅读(1246) | 评论 (0) 编辑
再学 GDI+[61]: 路径画刷(1) - SetCenterColor、SetSurroundColors
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, ExtCtrls, TeCanvas; type TForm1 = class(TFor...阅读全文
posted @ 2008-06-24 12:00 万一 阅读(1361) | 评论 (0) 编辑
再学 GDI+[60]: TGPGraphics.SetSmoothingMode - 绘图质量
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ...阅读全文
posted @ 2008-06-23 13:32 万一 阅读(2621) | 评论 (0) 编辑
再学 GDI+[59]: 路径 - TGPGraphicsPathIterator
摘要: 通过路径的辅助类 TGPGraphicsPathIterator , 可以获得更多路径数据和控制能力. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type...阅读全文
posted @ 2008-06-22 13:52 万一 阅读(1568) | 评论 (2) 编辑
再学 GDI+[58]: 路径 - 保存与读取路径数据
摘要: 本例演示了把路径中的数据保存到一个文本文件, 然后再读出的过程. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(T...阅读全文
posted @ 2008-06-21 21:15 万一 阅读(1726) | 评论 (0) 编辑
再学 GDI+[57]: 路径 - Widen
摘要: 路径的 Widen 方法可以把路径中的线, 根据指定画笔的宽度与样式, 转换为一个范围(有点类似区域); 但转换后再描绘路径就只能使用 FillPath 而不是 DrawPath 了. 本例没有测试它的两个默认参数, 因为前面已多次提到了. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Var...阅读全文
posted @ 2008-06-20 23:23 万一 阅读(1396) | 评论 (0) 编辑
再学 GDI+[56]: 路径 - Warp
摘要: 通过路径的 Warp 方法可以让路径在一个范围内(四个点决定的范围)变换; 第一个参数可以是 3 个点或 4 个点的数组, 如果是 3 个的数组, 那么第 4 个点将自动跟随一个平行四边形; 第二个参数用来指定点数组的个数, 本例就是通过这个参数控制了点的个数; 第三个参数是一个矩形, 这个矩形应该是路径的外接矩形, 之后的参数都是可选的; 第四个参数也是一个矩阵变换, 因由专门的 例子 , 这里...阅读全文
posted @ 2008-06-20 19:26 万一 阅读(1668) | 评论 (2) 编辑
再学 GDI+[55]: 路径 - Flatten
摘要: 通过路径的 Flatten 方法可以把路径中的曲线拉直, 拉直到什么程度是由它的第二个参数(默认0.25)决定的; 它的第一个参数又是一个矩阵变换, 也就是说 Flatten 可以同时进行矩阵变换, 本例没有测试它, 其详情参见:http://www.cnblogs.com/del/archive/2008/06/20/1226293.html 本例效果图: 代码文件: unit Unit1...阅读全文
posted @ 2008-06-20 10:20 万一 阅读(1426) | 评论 (0) 编辑
再学 GDI+[54]: 路径 - Transform
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Pan...阅读全文
posted @ 2008-06-20 00:48 万一 阅读(1867) | 评论 (3) 编辑
再学 GDI+[53]: 路径 - SetFillMode
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: ...阅读全文
posted @ 2008-06-19 22:13 万一 阅读(1517) | 评论 (0) 编辑
再学 GDI+[52]: 路径 - Reverse、Reset
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-06-19 17:27 万一 阅读(1394) | 评论 (0) 编辑
再学 GDI+[51]: 路径 - IsVisible、IsOutlineVisible
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObj...阅读全文
posted @ 2008-06-19 16:41 万一 阅读(1716) | 评论 (7) 编辑
再学 GDI+[50]: 路径 - GetPathPoints、GetPathTypes、TPathData、GetPathData
摘要: 这个例子有错误! 点的类型很多时候不是单一的;譬如某个点可能同时是子路径结束点、曲线点、标记点, 此时类型值就是三种类型的复合值.遗憾的是做这个例子时, 我还不知道... 放在这里吧, 留个纪念, 记下曾经的幼稚!本例效果图:代码文件:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics...阅读全文
posted @ 2008-06-18 18:23 万一 阅读(2132) | 评论 (0) 编辑
再学 GDI+[49]: 路径 - GetPointCount、GetPathPoints、GetLastPoint、GetBounds
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-06-18 15:30 万一 阅读(1614) | 评论 (0) 编辑
再学 GDI+[48]: 路径 - StartFigure、CloseFigure、CloseAllFigures
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-06-18 11:30 万一 阅读(1700) | 评论 (6) 编辑
再学 GDI+[47]: 路径 - CloseFigure
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; ...阅读全文
posted @ 2008-06-18 10:50 万一 阅读(1282) | 评论 (0) 编辑
再学 GDI+[46]: 路径 - Create、FillPath、DrawPath
摘要: 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); ...阅读全文
posted @ 2008-06-18 01:47 万一 阅读(2131) | 评论 (1) 编辑
再学 GDI+[45]: 文本输出 - 在矩形中格式化输出
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls; type TForm1 = class(TForm) Rad...阅读全文
posted @ 2008-06-17 18:18 万一 阅读(3582) | 评论 (4) 编辑
再学 GDI+[45]: 文本输出 - 文本呈现质量
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ComboBox1: TComboBox; ...阅读全文
posted @ 2008-06-17 15:41 万一 阅读(2380) | 评论 (0) 编辑
再学 GDI+[44]: 文本输出 - 字体
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ...阅读全文
posted @ 2008-06-17 14:36 万一 阅读(1523) | 评论 (5) 编辑
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
摘要: 这比用 Screen.Fonts; 获取麻烦一些. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ...阅读全文
posted @ 2008-06-16 23:43 万一 阅读(1202) | 评论 (0) 编辑
再学 GDI+[42]: 文本输出 - 字号单位
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Rad...阅读全文
posted @ 2008-06-16 18:56 万一 阅读(1388) | 评论 (0) 编辑
再学 GDI+[41]: 文本输出 - 控制输出字符的个数
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-06-16 17:41 万一 阅读(1333) | 评论 (1) 编辑
再学 GDI+[40]: 文本输出 - 选择画刷
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CheckLst; type TForm1 = class(TForm) Rad...阅读全文
posted @ 2008-06-16 14:45 万一 阅读(1436) | 评论 (5) 编辑
再学 GDI+[39]: 文本输出 - 文本样式
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst; type TForm1 = class(TForm) CheckListBox1...阅读全文
posted @ 2008-06-16 14:14 万一 阅读(1714) | 评论 (0) 编辑
再学 GDI+[38]: 文本输出 - DrawString、TGPFont
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; B...阅读全文
posted @ 2008-06-16 11:05 万一 阅读(2639) | 评论 (5) 编辑
再学 GDI+[37]: TGPPen - TGPCustomLineCap、SetCustomStartCap、SetCustomEndCap
摘要: GDI+ 可以自定义线帽, 本例定义的起始线帽是一个小矩形、终止线帽是一个小三角形. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; typ...阅读全文
posted @ 2008-06-15 22:10 万一 阅读(1564) | 评论 (6) 编辑
再学 GDI+[36]: TGPPen - SetLineCap
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ComboBox1: TC...阅读全文
posted @ 2008-06-15 00:04 万一 阅读(1383) | 评论 (0) 编辑
再学 GDI+[35]: TGPPen - 虚线画笔位移 - SetDashOffset
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; pro...阅读全文
posted @ 2008-06-14 13:17 万一 阅读(1379) | 评论 (0) 编辑
再学 GDI+[34]: TGPPen - 画笔的缩放变换 - ScaleTransform
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) TrackBar1: TT...阅读全文
posted @ 2008-06-13 23:07 万一 阅读(1648) | 评论 (6) 编辑
再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform
摘要: 几何变换也就是 Matrix 变换, 画笔的 Matrix 会忽略 dx、dy 平移参数; 选择 LineCapRound 线帽效果比较好. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialo...阅读全文
posted @ 2008-06-13 22:03 万一 阅读(1286) | 评论 (0) 编辑
再学 GDI+[32]: TGPPen - 拐角长度的限制 - SetMiterLimit
摘要: 拐角长度的限制的默认值是 10.0, 一般足够用了. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = cla...阅读全文
posted @ 2008-06-13 20:32 万一 阅读(1251) | 评论 (0) 编辑
再学 GDI+[31]: TGPPen - 设置端点连接方式 - SetLineJoin
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ...阅读全文
posted @ 2008-06-13 19:32 万一 阅读(1451) | 评论 (0) 编辑
再学 GDI+[30]: TGPPen - 用画刷定义的画笔
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: ...阅读全文
posted @ 2008-06-13 16:34 万一 阅读(1177) | 评论 (0) 编辑
再学 GDI+[29]: TGPPen - 自定义复合画笔 - SetCompoundArray
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) LabeledEdit1:...阅读全文
posted @ 2008-06-13 13:51 万一 阅读(1213) | 评论 (0) 编辑
再学 GDI+[28]: TGPPen - 自定义画笔的虚线样式 - SetDashPattern
摘要: 自定义的虚线样式依赖与一个数组, 数组的元素分别代表虚线中线与间的长度, 数组大小好像没有限制; 本例使用了六个元素的数组, 也就是表示虚线有三个线段和和三个间隔构成. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, ...阅读全文
posted @ 2008-06-12 18:27 万一 阅读(1828) | 评论 (0) 编辑
再学 GDI+[27]: TGPPen - 画笔样式 - SetDashStyle
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ComboBox1: TC...阅读全文
posted @ 2008-06-12 17:20 万一 阅读(1828) | 评论 (2) 编辑
再学 GDI+[26]: TGPPen - 画笔对齐 - SetAlignment
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: ...阅读全文
posted @ 2008-06-12 16:48 万一 阅读(1883) | 评论 (0) 编辑
再学 GDI+[25]: TGPPen - 宽度、颜色与线帽
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TeCanvas, ComCtrls; type TForm1 = class(TForm) Com...阅读全文
posted @ 2008-06-12 14:51 万一 阅读(1603) | 评论 (1) 编辑
再学 GDI+[24]: TGPLinearGradientBrush - 之三
摘要: TGPLinearGradientBrush.Create( const point1, point2: TGPPoint; {线性渐变起始点与终止点} color1, color2: TGPColor {线性渐变起始色与终止色} ); TGPLinearGradientBrush.Create( const point1, point2: TGPPointF; ...阅读全文
posted @ 2008-06-12 00:20 万一 阅读(1389) | 评论 (4) 编辑
再学 GDI+[23]: TGPLinearGradientBrush - 之二
摘要: TGPLinearGradientBrush.Create( rect: TGPRect; {变化范围} color1, color2: TGPColor; {起始色与终止色} angle: Single; {旋转角度} isAngleScalable: BOOL = FALSE {是否受 TLinearGrad...阅读全文
posted @ 2008-06-11 19:18 万一 阅读(1176) | 评论 (0) 编辑
再学 GDI+[22]: TGPLinearGradientBrush - 之一: TLinearGradientMode
摘要: TGPLinearGradientBrush.Create( rect: TGPRect; {线性渐变的界限} color1, color2: TGPColor; {线性渐变起始色与终止色} mode: TLinearGradientMode {渐变方向, 见下表} ); TGPLinearGradientBrush.Create( rect: TGPRe...阅读全文
posted @ 2008-06-11 17:00 万一 阅读(1594) | 评论 (0) 编辑
再学 GDI+[21]: TGPTextureBrush 与 TGPMatrix
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Pan...阅读全文
posted @ 2008-06-11 14:40 万一 阅读(1310) | 评论 (0) 编辑
再学 GDI+[20]: TGPTextureBrush 与 TWrapMode
摘要: TGPTextureBrush.Create( image: TGPImage; {用于画刷的图像} wrapMode: TWrapMode = WrapModeTile {平铺样式, 是可选值, 见下表} ); 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, Sy...阅读全文
posted @ 2008-06-11 11:25 万一 阅读(1274) | 评论 (1) 编辑
再学 GDI+[19]: TGPTextureBrush(纹理画刷)
摘要: TGPTextureBrush.Create( image: TGPImage; {用于画刷的图像} ); 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 ...阅读全文
posted @ 2008-06-11 10:32 万一 阅读(1235) | 评论 (0) 编辑
再学 GDI+[18]: FillEllipse、TGPHatchBrush(阴影画刷)
摘要: TGPHatchBrush.Create( hatchStyle: THatchStyle; {阴影样式, 见下表} foreColor: TGPColor; {前景色} backColor: TGPColor = aclBlack {背景色, 是可选值, 默认是黑色} ); 本例效果图: 代码文件: unit Unit1; interfa...阅读全文
posted @ 2008-06-10 23:30 万一 阅读(2310) | 评论 (4) 编辑
再学 GDI+[17]: FillRectangle、ColorRefToARGB、TGPSolidBrush 和颜色透明度
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Col...阅读全文
posted @ 2008-06-10 16:01 万一 阅读(2174) | 评论 (2) 编辑
再学 GDI+[16]: GDI+ 的颜色常量表
摘要: 颜色名称 颜色效果 颜色值 aclAliceBlue$FFF0F8FF aclAntiqueWhite$FFFAEBD7 aclAqua$FF00FFFF aclAquamarine$FF7FFFD4 aclAzure$FFF0FFFF aclBeige$FFF5F5DC aclBisque$FFFFE4C4 aclBlack$FF000000 aclBlanchedAlmond$...阅读全文
posted @ 2008-06-10 14:15 万一 阅读(3373) | 评论 (0) 编辑
再学 GDI+[15]: GDIPAPI 单元提供的 Make 及 Color 系列函数
摘要: function MakePoint(X, Y: Integer): TGPPoint; overload; function MakePoint(X, Y: Single): TGPPointF; overload; function MakeSize(Width, Height: Integer): TGPSize; overload; function MakeSize(Width, H...阅读全文
posted @ 2008-06-10 13:05 万一 阅读(1948) | 评论 (0) 编辑
再学 GDI+[14]: DrawBeziers - 绘制一组贝塞尔线
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObjec...阅读全文
posted @ 2008-06-10 12:09 万一 阅读(1498) | 评论 (0) 编辑
再学 GDI+[13]: DrawBezier - 绘制贝塞尔线
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObjec...阅读全文
posted @ 2008-06-10 11:18 万一 阅读(2067) | 评论 (0) 编辑
再学 GDI+[12]: 准备工作 - 矩形命中
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormMouseDown(Sender: T...阅读全文
posted @ 2008-06-10 01:49 万一 阅读(1431) | 评论 (0) 编辑
再学 GDI+[11]: DrawCurve - 绘制曲线
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls; type TForm1 = class(TForm) But...阅读全文
posted @ 2008-06-09 23:12 万一 阅读(4322) | 评论 (2) 编辑
再学 GDI+[10]: DrawClosedCurve - 绘制闭合曲线
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TBut...阅读全文
posted @ 2008-06-09 17:01 万一 阅读(1689) | 评论 (2) 编辑
再学 GDI+[9]: DrawPolygon - 绘制多边形
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; B...阅读全文
posted @ 2008-06-09 10:58 万一 阅读(2402) | 评论 (0) 编辑
再学 GDI+[8]: DrawRectangles - 绘制一组矩形
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-06-09 10:43 万一 阅读(1401) | 评论 (3) 编辑
再学 GDI+[7]: DrawLines - 绘制一组直线
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; B...阅读全文
posted @ 2008-06-09 09:48 万一 阅读(1684) | 评论 (0) 编辑
再学 GDI+[6]: DrawPie - 绘制饼形
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, ExtCtrls; type TForm1 = class(TForm) Panel1:...阅读全文
posted @ 2008-06-09 00:31 万一 阅读(1645) | 评论 (1) 编辑
再学 GDI+[5]: DrawArc - 绘制弧线
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, ExtCtrls; type TForm1 = class(TForm) Panel1:...阅读全文
posted @ 2008-06-08 21:07 万一 阅读(2216) | 评论 (4) 编辑
再学 GDI+[4]: DrawEllipse - 绘制椭圆
摘要: 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObje...阅读全文
posted @ 2008-06-08 13:24 万一 阅读(2036) | 评论 (4) 编辑
再学 GDI+[3]: DrawRectangle - 绘制矩形
摘要: 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); ...阅读全文
posted @ 2008-06-07 23:08 万一 阅读(2048) | 评论 (2) 编辑
再学 GDI+[2]: DrawLine - 绘制直线
摘要: 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); ...阅读全文
posted @ 2008-06-07 22:31 万一 阅读(2979) | 评论 (6) 编辑
再学 GDI+[1]: 安装文件头
摘要: 如果使用 Delphi 2009 之后的版本, 推荐使用:http://www.cnblogs.com/del/archive/2009/12/11/1621790.html.下面这些是以前用 2007 弄的.GDI+ 是 Windows 的一个函数库, 来自 Windows\System32\GDIPlus.dll, 其中包含了 610 个函数.在 Delphi 中使用需要先下载安装 GDI+ ...阅读全文
posted @ 2008-06-06 19:02 万一 阅读(10416) | 评论 (20) 编辑
GDI+ 学习记录(31): 图像颜色变换(TGPImageAttributes)
摘要: //正常显示图片, 没有变换 uses GDIPAPI, GDIPOBJ; procedure TForm1.FormPaint(Sender: TObject); var g: TGPGraphics; img: TGPImage; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:...阅读全文
posted @ 2008-02-06 10:41 万一 阅读(3831) | 评论 (13) 编辑
GDI+ 学习记录(30): MetaFile 文件操作
摘要: //显示 MetaFile 文件 var g: TGPGraphics; img: TGPImage; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\x.emf'); {文件要存在} g.DrawImage(img, 11, 11); img.Free; ...阅读全文
posted @ 2007-12-27 23:13 万一 阅读(2837) | 评论 (9) 编辑
GDI+ 学习记录(29): 区域 - Region
摘要: //创建并填充区域 var g: TGPGraphics; sb: TGPSolidBrush; region: TGPRegion; {定义区域} begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(aclGold); region := TGPRegion.Create(M...阅读全文
posted @ 2007-12-27 23:12 万一 阅读(3134) | 评论 (2) 编辑
GDI+ 学习记录(28): 图像颜色的数据格式 - PixelFormat
摘要: //指定位图颜色 var g,gbit: TGPGraphics; bit1,bit2: TGPBitmap; sb: TGPSolidBrush; begin //Self.Color := clWhite; g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,...阅读全文
posted @ 2007-12-27 23:11 万一 阅读(9212) | 评论 (0) 编辑
GDI+ 学习记录(27): Bitmap
摘要: //用 Bitmap 显示图像 var g: TGPGraphics; bit: TGPBitmap; begin g := TGPGraphics.Create(Canvas.Handle); bit := TGPBitmap.Create('c:\temp\x.jpg'); g.DrawImage(bit, 11, 11); {默认大小竟然和 1:1 不一样, 是不是分...阅读全文
posted @ 2007-12-27 23:09 万一 阅读(4589) | 评论 (2) 编辑
GDI+ 学习记录(26): 显示图像 - Image
摘要: //显示图像 var g: TGPGraphics; img: TGPImage; begin g := TGPGraphics.Create(Self.Canvas.Handle); img := TGPImage.Create('c:\temp\x.jpg'); g.DrawImage(img,10,10); {参数2、3是坐标} img.Free; g.F...阅读全文
posted @ 2007-12-27 23:08 万一 阅读(5266) | 评论 (7) 编辑
GDI+ 学习记录(25): 变换 - Transform
摘要: //比例变化 var g: TGPGraphics; p: TGPPen; rect: TGPRect; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),0); rect := MakeRect(10,10,100,100); g.Draw...阅读全文
posted @ 2007-12-27 22:34 万一 阅读(4635) | 评论 (2) 编辑
GDI+ 学习记录(24): 输出文本<3>
摘要: //获取字体信息 var fontFamily: TGPFontFamily; font: TGPFont; begin fontFamily := TGPFontFamily.Create('宋体'); font := TGPFont.Create(fontFamily, 9, FontStyleRegular, UnitPixel); ShowMessage(Float...阅读全文
posted @ 2007-12-27 22:33 万一 阅读(2343) | 评论 (0) 编辑
GDI+ 学习记录(23): 输出文本<2>
摘要: //在矩形范围中显示文本 var g: TGPGraphics; fontFamily: TGPFontFamily; font: TGPFont; rectF: TGPRectF; p: TGPPen; sb: TGPSolidBrush; str: WideString; begin g := TGPGraphics.Create(Canvas.Handle)...阅读全文
posted @ 2007-12-27 22:02 万一 阅读(2812) | 评论 (0) 编辑
GDI+ 学习记录(22): 输出文本<1>
摘要: //输出文本 var g: TGPGraphics; sb: TGPSolidBrush; fontFamily: TGPFontFamily; font: TGPFont; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(0,0,255)); fon...阅读全文
posted @ 2007-12-27 20:23 万一 阅读(3576) | 评论 (3) 编辑
GDI+ 学习记录(21): 颜色
摘要: //颜色透明度 var g: TGPGraphics; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(128,255,0,0)); {128表示半透明} g.FillRectangle(sb,10,10,100,10...阅读全文
posted @ 2007-12-27 19:14 万一 阅读(2815) | 评论 (0) 编辑
GDI+ 学习记录(20): 绘图质量
摘要: //绘图质量 var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.SetSmoothingMode(SmoothingModeHighQuality); {高质量} g.DrawLi...阅读全文
posted @ 2007-12-27 19:13 万一 阅读(2512) | 评论 (1) 编辑
GDI+ 学习记录(19): 路径 - Path
摘要: //绘制与填充路径 var g: TGPGraphics; path: TGPGraphicsPath; p: TGPPen; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(128,255,0,0),4); sb := TGPS...阅读全文
posted @ 2007-12-27 19:06 万一 阅读(2744) | 评论 (3) 编辑
GDI+ 学习记录(18): 闭合曲线 - ClosedCurve
摘要: //闭合曲线 var g: TGPGraphics; p: TGPPen; sb: TGPSolidBrush; pts: array[0..4] of TGPPoint; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,255,255)); ...阅读全文
posted @ 2007-12-27 19:06 万一 阅读(1709) | 评论 (0) 编辑
GDI+ 学习记录(17): 曲线 - Curve
摘要: //画曲线 var g: TGPGraphics; p: TGPPen; pts: array[0..4] of TGPPoint; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),4); pts[0].X := 11; pts[0].Y := 11...阅读全文
posted @ 2007-12-27 19:05 万一 阅读(2364) | 评论 (0) 编辑
GDI+ 学习记录(16): 贝塞尔曲线 - Bezier、Beziers
摘要: //画贝塞尔曲线 var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.DrawBezier(p, 11,11, 88,333, 99,0, 222,111); {参数是画笔与 4 个点的...阅读全文
posted @ 2007-12-27 19:04 万一 阅读(2709) | 评论 (2) 编辑
GDI+ 学习记录(15): 多边形 - Polygon
摘要: //多边形描边与填充 var g: TGPGraphics; p: TGPPen; sb: TGPSolidBrush; pts: array[0..4] of TGPPoint; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,255,255))...阅读全文
posted @ 2007-12-27 19:04 万一 阅读(1971) | 评论 (5) 编辑
GDI+ 学习记录(14): 饼图 - Pie
摘要: //饼图描边与填充 var g: TGPGraphics; p: TGPPen; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,255,255)); p := TGPPen.Create(MakeColor(...阅读全文
posted @ 2007-12-27 19:00 万一 阅读(2197) | 评论 (0) 编辑
GDI+ 学习记录(13): 弧线 - Arc
摘要: //画弧线 var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.DrawArc(p,11,32,300,200,0,90); {参数 2-5 是一个椭圆} p.SetColo...阅读全文
posted @ 2007-12-27 18:58 万一 阅读(2175) | 评论 (0) 编辑
GDI+ 学习记录(12): 矩形 - Rectangle、Rectangles
摘要: //填充与描边 var g: TGPGraphics; p: TGPPen; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,255,255)); p := TGPPen.Create(MakeColor(25...阅读全文
posted @ 2007-12-27 18:56 万一 阅读(2564) | 评论 (6) 编辑
GDI+ 学习记录(11): 路径渐变画刷 - PathGradientBrush
摘要: //路径渐变画刷 var g: TGPGraphics; path: TGPGraphicsPath; pb: TGPPathGradientBrush; {声明渐变画刷} num: Integer; const colors: array[0..0] of TGPColor = (aclAqua); begin g := TGPGraphics.Create(Canva...阅读全文
posted @ 2007-12-27 16:59 万一 阅读(4313) | 评论 (2) 编辑
GDI+ 学习记录(10): 线性渐变画刷 - LinearGradientBrush
摘要: //线性渐变画刷 var g: TGPGraphics; lb: TGPLinearGradientBrush; rect: TGPRect; begin g := TGPGraphics.Create(Canvas.Handle); rect := MakeRect(11,11,222,111); lb := TGPLinearGradientBrush.Create(...阅读全文
posted @ 2007-12-27 16:49 万一 阅读(3349) | 评论 (6) 编辑
GDI+ 学习记录(9): 纹理画刷 - TextureBrush
摘要: //纹理画刷 var g: TGPGraphics; img: TGPImage; tb: TGPTextureBrush; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\small.jpg'); tb := TGPTextureBrush.Create(img)...阅读全文
posted @ 2007-12-27 16:41 万一 阅读(2768) | 评论 (0) 编辑
GDI+ 学习记录(8): 阴影画刷 - HatchBrush
摘要: //阴影画刷 var g: TGPGraphics; hb: TGPHatchBrush; begin g := TGPGraphics.Create(Canvas.Handle); hb := TGPHatchBrush.Create(HatchStyleHorizontal, aclRed, aclYellow); {参数1是阴影样式; 参数2是前景色; 参数3是背景色...阅读全文
posted @ 2007-12-27 16:36 万一 阅读(3594) | 评论 (0) 编辑
GDI+ 学习记录(7): 实心画刷 - SolidBrush
摘要: //实心画刷 var g: TGPGraphics; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(aclGreen); {参数是颜色} g.FillEllipse(sb, 11, 11, 222, 111); sb.Free; ...阅读全文
posted @ 2007-12-27 16:29 万一 阅读(2252) | 评论 (0) 编辑
GDI+ 学习记录(6): 使用画刷建立画笔
摘要: //使用画刷建立画笔 var g: TGPGraphics; img: TGPImage; tb: TGPTextureBrush; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\small.jpg'); tb := TGPTexture...阅读全文
posted @ 2007-12-27 15:02 万一 阅读(2045) | 评论 (0) 编辑
GDI+ 学习记录(5): 复合画笔
摘要: //复合画笔 var g: TGPGraphics; p: TGPPen; arr: array[0..9] of Single; {10 个元素可以分成 5 条线, 每条线需要起点和终点} begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),100);...阅读全文
posted @ 2007-12-27 14:45 万一 阅读(2192) | 评论 (3) 编辑
GDI+ 学习记录(4): 画笔对齐
摘要: //笔对齐 var g: TGPGraphics; p: TGPPen; sb: TGPSolidBrush; rect: TGPRect; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),5); sb := TGPSolidBrush.Cr...阅读全文
posted @ 2007-12-27 14:44 万一 阅读(2246) | 评论 (1) 编辑
GDI+ 学习记录(3): 虚线画笔 - Dash
摘要: //虚线样式 var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),3); g.DrawLine(p, 11, 11, 333, 11); {实线} p.SetDashStyle(D...阅读全文
posted @ 2007-12-27 14:10 万一 阅读(4167) | 评论 (0) 编辑
GDI+ 学习记录(2): 画笔线帽 - Cap
摘要: //线帽 var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p:= TGPPen.Create(aclBlue, 8); p.SetStartCap(LineCapArrowAnchor); {起点线帽} p.SetEndCap(LineCapRoundAnchor)...阅读全文
posted @ 2007-12-27 13:51 万一 阅读(4233) | 评论 (0) 编辑