随笔分类 -  Delphi 与 GDI+

1 2 3 4 5 ··· 11 下一页
终于, 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 万一 阅读(17030) 评论(12) 推荐(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 万一 阅读(4010) 评论(5) 推荐(2) 编辑
GdiPlus[60]: 图像(十二) IGPImageAttributes 的更多方法
摘要:IGPImageAttributes 的方法:SetWrapMode() { 设置环绕模式 }这是 IGPImageAttributes 中出了 Clone 以外唯一个和颜色不相关方法.SetThreshold()、SetThreshold() { 设置、取消 "阈值" }取值范围: 0..1假如设置阀值为 0.5, 那么超过 128 的红色都变为 256, 少于 128 的红色都变为 0;绿色、... 阅读全文
posted @ 2010-01-03 15:40 万一 阅读(4779) 评论(2) 推荐(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 万一 阅读(4236) 评论(5) 推荐(0) 编辑
GdiPlus[58]: 图像(十) IGPMetafile 特有的属性与方法
摘要:这包括://方法IGPMetafile.GetMetafileHeader; { 获取 Metafile 的 MetafileHeader }IGPMetafile.GetHEnhMetafile; { 获取增强型 Metafile 的 Windows 句柄 }IGPMetafile.PlayRecord(); { 播放单个图元文件记录 }//属性IGPMetafile.DownLevelRast... 阅读全文
posted @ 2009-12-31 21:48 万一 阅读(3245) 评论(2) 推荐(0) 编辑
GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法
摘要:这包括://属性IGPBitmap.Pixels; { 获取或设置指定像素的颜色 }//方法IGPBitmap.SetResolution(); { 设置分辨率 }IGPBitmap.GetHBitmap(); { 创建 GDI 格式的 Bitmap 并返回句柄 }IGPBitmap.GetHIcon; { 创建 Icon 文件并返回句柄 }IGPBitmap.LockBits(); { 锁定对象... 阅读全文
posted @ 2009-12-31 11:39 万一 阅读(6028) 评论(0) 推荐(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 万一 阅读(5724) 评论(2) 推荐(0) 编辑
GdiPlus[55]: 图像(七) 图像编码的参数
摘要:通过 IGPImage.GetEncoderParameterList 可以获取指定编码格式的参数列表;通过此列表可以遍历出各参数的指针: PGPNativeEncoderParameter(TGPNativeEncoderParameter 的指针);TGPNativeEncoderParameter 是一个结构体:TGPNativeEncoderParameter = record Guid... 阅读全文
posted @ 2009-12-29 17:25 万一 阅读(5889) 评论(2) 推荐(1) 编辑
GdiPlus[54]: 图像(六) 图像解码与编码
摘要:GDI+ 能够打开某种格式的图像, 就会有对应的解码器; 能够保存为某种格式, 也会有对应的编码器.下面程序通过 IGPImageCodecInfoArray 与 IGPImageCodecInfo 获取了 GDI+ 能够编码与解码的格式:uses GdiPlus;procedure TForm1.Button1Click(Sender: TObject);var Encoders, Decod... 阅读全文
posted @ 2009-12-29 16:05 万一 阅读(3637) 评论(0) 推荐(0) 编辑
GdiPlus[53]: 图像(五) 图像的属性(图像元数据)
摘要:相关方法和属性:IGPImage.GetPropertyItem(); { 获取属性项 }IGPImage.SetPropertyItem(); { 设置属性项 }IGPImage.RemovePropertyItem(); { 删除属性项 }IGPImage.PropertyIdList; { 获取图像属性 ID 数组 }IGPImage.PropertyItems; { 获取图像属性集合 }... 阅读全文
posted @ 2009-12-29 12:03 万一 阅读(4066) 评论(0) 推荐(1) 编辑
GdiPlus[52]: 图像(四) 图像信息
摘要:相关属性、方法、函数:IGPImage.Width; { 宽度(单位是像素) }IGPImage.Height; { 高度(单位是像素) }IGPImage.HorizontalResolution; { 获取水平分辨率(以"像素/英寸"为单位) }IGPImage.VerticalResolution; { 获取垂直分辨率(以"像素/英寸"为单位) }IGPImage.RawFormat; { ... 阅读全文
posted @ 2009-12-28 21:14 万一 阅读(4145) 评论(1) 推荐(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 万一 阅读(4420) 评论(7) 推荐(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 万一 阅读(4318) 评论(1) 推荐(0) 编辑
GdiPlus[49]: 图像(一) 概览
摘要:三个主要的图像相关接口是: IGPImage、IGPBitmap、IGPMetafile.IGPBitmap、IGPMetafile 都是从 IGPImage 继承, 分别用于处理位图和图元文件.还有从 IGPBitmap 继承的 IGPCachedBitmap 用于快速呈现图像.IGPImage 的方法与属性://方法IGPImage.Clone; { 克隆 }IGPImage.Save(); ... 阅读全文
posted @ 2009-12-25 22:52 万一 阅读(4570) 评论(3) 推荐(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 万一 阅读(3343) 评论(3) 推荐(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 万一 阅读(3739) 评论(34) 推荐(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 万一 阅读(2853) 评论(1) 推荐(0) 编辑
GdiPlus[45]: IGPGraphics (四) 关于呈现质量与合成模式
摘要:相关内容有:IGPGraphics.SmoothingMode; { 绘图质量 }IGPGraphics.InterpolationMode; { 插补模式 }IGPGraphics.CompositingMode; { 前景色与背景色的合成混合模式 }IGPGraphics.CompositingQuality; { 图像合成质量 }IGPGraphics.PixelOffsetMode; { ... 阅读全文
posted @ 2009-12-22 22:53 万一 阅读(4308) 评论(2) 推荐(0) 编辑
GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat
摘要:IGPStringFormat 的方法和属性://方法:IGPStringFormat.GetTabStops(); { 获取制表位 }IGPStringFormat.SetTabStops(); { 设置制表位 }IGPStringFormat.SetDigitSubstitution(); { 指定用本地数字替换西方数字时使用的语言和方法 }IGPStringFormat.SetMeasura... 阅读全文
posted @ 2009-12-22 18:04 万一 阅读(4241) 评论(0) 推荐(0) 编辑
GdiPlus[43]: IGPGraphics (二) 关于文本绘制
摘要:IGPGraphics 中绘制文本相关的方法和属性:IGPGraphics.DrawString(); { 绘制文本 }IGPGraphics.MeasureString(); { 获取指定格式的字符串需要的矩形 }IGPGraphics.MeasureCharacterRanges(); { 获取指定字符所在的区域 }IGPGraphics.DrawDriverString(); { 绘制可指定... 阅读全文
posted @ 2009-12-22 13:54 万一 阅读(8593) 评论(11) 推荐(0) 编辑

1 2 3 4 5 ··· 11 下一页