GDI+编程基础1

本文参考:《精通GDI+编程》

一、GDI是什么

GDI+是Windows操作系统的图像引擎,负责在屏幕和打印机上显示和打印消息。

          是一个应用编程接口,通过一组C++类来提供接口的功能。

          是早期图形设备接口GDI的继任者。

二、GDI体系

GDI+的工作原理及其在操作系统中所扮演的角色,如下图

GDI+所包含的内容:

1、二位几何图形的处理

矢量图形由图元(如直线、曲线和轮廓等)组成,图元由坐标中的一组点来指定。

例如:一个矩形可用一个给出其左上角位置的点和一对给出其宽度、高度的数字来指定。

GDI+的

Rect(矩形)类用于存储矩形的位置和尺寸;

Pen(画笔)类存储线条颜色、线宽和线条风格的信息;

Graphics(图形)类用于绘制直线、矩形及其他图形;

Brush(画刷)类存储用颜色图案来填充闭合图形和路径的方法。

2、显示图像

某些图像难以或不可能使用矢量图形技术来表示。

例如:一幅包含一个拥挤的棒球场的高分辨率图形就很难用矢量技术来创建。

这种类型的图像一般都存储为位图,位图是代表屏幕上单个点的颜色的数字阵列。

CachedBitmap(缓存位图)类就是一个用于在内存中存储位图以便快速访问与显示位图。

3、排版

排版与使用各种各样的字体、尺寸和风格显示的文本有关。

GDI+提供文本的反锯齿(AntiAlias)输出,使得在LCD屏幕上绘制文本时文本的外观更加光滑。

三、GDI+新特性

1、渐变画刷

画刷是用来填充控件、窗口和区域的一个GDI对象。

GDI+技术的特殊画刷分为两种:

2、独立的路径对象(Path Objects)

路径是可以被填充、被画出轮廓或同时画出轮廓并填充的一个或多个图形。

在GDI中,路径是设备环境的一个对象,在BeginPath函数和EndPath甬数之间进行绘图时,绘图的信息自动存入路径信息。这些信息在下次使用BeginPath后便被新的路径信息覆盖,也就是说GDI中的路径信息是惟一并且不断改变的。在GDl+中,绘图是由图形对象(Graphics Object)来完成的,并且可以创建多个图形对象进行绘图,多个图形对象产生的路径信息是相对独立的,而且不会被新的绘图操作所覆盖。

3、矩阵对象(Matrix Object)

 GDI+提供了矩阵对象来使图形在变形(旋转及平移等)时做到简单且效果平滑。矩阵对象存储了图形在变化过程中的位置信息。使用矩阵除了可以对坐标位置信息进行变换以外,还可以对色彩的空间信息进行变换。在GDl+cP通过矩阵运算,可以完成包含投射变换在内的所有仿射变换。

4.Alpha通道合成运算(Alpha Blending)
  Alpha Blending是图形处理中最常见的一种运算方法。在GDI+中.Alpha Blending不仅运用在图片的合成方面,也体现在画笔、画刷与日标图形区域之间的合成运算中。图2·3演示了这种合成运算,从图中可以看出,青色方块后面的红色椭圆依稀可见。这种效果在GDI中实现起来有困难,但在GDl+中这种效果实现起来则相当简单。另外,以前常常提到的图片的淡入淡出显示有了一个最简单的解决方法Alpha Blending。在两幅图片重叠显示时,我们可以设置硅示图片的透明度来合成图片,真正做到透明。

    5.多格式图片支持
    GDI+提供了对各种图片的打印、存储功能。通过GDI+,我们能够在编程中直接将一幅BMP文件存储成JPG或是其他格式的图片文件,再也不用操心具体的存储方法了。GDI+所支持的文件格式有:BMP、GIF、JPEG、EXIF、PNG、TIFF、JCON、WMF及EMF。

    GDI+的所有新特色给程序员提供了一种简清的方法柬完成在GDI qJ需要经过繁琐的过程才能完成的编程T作。从某种意义E来说.GDI+是对使用GDI编程的程序员的一种解脱。

 

GDI+ SDK参考(翻译版本) 序言 4 目标 4 适用范围 4 适用读者 4 运行环境 4 文档组织 4 相关主题 4 GDI+的安全考虑 6 检验构造函数调用成功与否 6 分配缓冲区 6 错误校验 8 线程同步 9 相关主题 10 关于GDI+ 11 GDI+ 介绍 11 GDI+ 概览 11 GDI+ 的三个组成部分 11 基于类的接口架构 12 GDI+提供了哪些新东西? 12 新特征 12 编程模式的改变 15 线条、曲线和图形 19 矢量图概览 19 钢笔、线条和矩形 20 椭圆和弧 22 多边形 22 基数样条 23 贝塞尔样条 24 路径 25 画刷和填充图形 27 开放与闭合曲线 29 区域 30 裁剪 31 路径平直化 32 线条和曲线的抗锯齿功能 32 图象、位图和图元文件 33 位图类型 34 图元文件 37 绘制、定位和复制图片 39 裁剪和缩放图象 40 坐标系统和转换 42 坐标系统类型 42 以矩阵来表示转换 44 全局和局部转换 48 图形容器 51 使用GDI+ 56 使用入门 56 绘制线条 56 绘制字符串 58 使用钢笔绘制线条和形状 59 使用钢笔绘制线条和矩形 59 设置钢笔的宽度和对齐方式 60 绘制具有线帽的线条 61 联接线条 62 绘制自定义虚线 62 绘制用纹理填充的线条 63 使用画笔填充形状 63 用纯色填充形状 64 用阴影图案填充形状 64 用图像纹理填充形状 64 在形状中平铺图像 65 用渐变色填充形状 68 使用图像、位图和图元文件 68 加载和显示位图 68 加载和显示图元文件 69 记录图元文件 69 剪裁和缩放图像 71 旋转、反射和扭曲图像 72 缩放时使用插值模式控制图像质量 73 创建缩略图像 75 采用高速缓存位图来提高性能 76 通过避免自动缩放改善性能 76 读取图像元数据 77 使用图像编码器和解码器 83 列出已安装的编码器 83 列出已安装的解码器 84 获取解码器的类标识符 86 获取编码器的参数列表 88 将BMP图像转换为PNG图像 100 设定JPEG的压缩等级 101 对JPEG图像进行无损变换 102 创建和保存多帧图像 105 从多帧图像中复制单帧 107 Alpha 混合线条和填充 109 绘制不透明和半透明的线条 109 用不透明和半透明的画笔绘制 110 使用复合模式控制 Alpha 混合 111 使用颜色矩阵设置图像中的 Alpha 值 112 设置单个象素的alpha值 114 使用字体和文本 115 构造字体系列和字体 115 绘制文本 116 格式化文本 117 枚举已安装的字体 120 创建专用的字体集合 122 获取字体规格 126 对文本使用消除锯齿效果 130 构造并绘制曲线 131 绘制基数样条曲线 131 绘制贝塞尔样条 133 用渐变画刷填充形状 134 创建线性渐变 134 创建路径渐变 137 将 Gamma 校正应用于渐变 144 构造并绘制路径 145 使用线条、曲线和形状创建图形 145 填充开放式图形 147 使用图形容器 147 管理 Graphics 对象的状态 148 使用嵌套的 Graphics 容器 151 变换 154 使用世界变换 154 为什么变换顺序非常重要 155 使用区域 156 对区域使用点击检测 156 对区域使用剪辑 157 对图像重新着色 158 使用颜色矩阵对单色进行变换 158 转换图像颜色 160 缩放颜色 161 旋转颜色 164 剪取颜色 166 使用颜色重映射表 168 打印 169 将GDI+输出至打印机 169 显示一个打印对话框 172 通过提供打印机句柄优化打印 173 附录:GDI+ 参考 176
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值