GDIGDI 从入门到精通-第三讲资料
- 格式:ppt
- 大小:677.01 KB
- 文档页数:55
上海鼎为通讯科技有限公司 上海鼎为通讯科技有限公司 鼎为通讯科技 Dewav Communication Technology Co.,Ltd.GDI 学习总结文件编号 Doc. No. : 页数 Page : 12 报告人:Neil 版本 Version :V1.0上海鼎为通讯科技有限公司1历次修正记录序号 1 变更 日期 2010-10-1 1 原因创建文档变更摘要版本1.0提出者Neil批准2目 录1 GDI 简介 ....................................................................................................................................... 4 2 GDI 功能描述和架构分析............................................................................................................ 4 3 2D APIs 和文本功能 ..................................................................................................................... 6 3.1 点........................................................................................................................................ 6 3.2 线........................................................................................................................................ 6 3.3 框........................................................................................................................................ 6 3.4 文本.................................................................................................................................... 7 3.4.1 字体.......................................................................................................................... 7 3.4.2 带边框的文本 ......................................................................................................... 7 4 层 .................................................................................................................................................. 7 4.1 准备.................................................................................................................................... 8 4.2 创建层................................................................................................................................ 8 4.3 激活层................................................................................................................................ 9 4.4 基础层.............................................................................................................................. 10 4.5 合并层.............................................................................................................................. 11 4.6 层坐标系.......................................................................................................................... 11 4.7 剪切.................................................................................................................................. 12 4.8 透明度............................................................................................................................... 12 4.9 通透.................................................................................................................................. 12 4.10 图像旋转........................................................................................................................ 13 5 流程跟踪..................................................................................................................................... 15 6 参考文档..................................................................................................................................... 1531 GDI 简介GDI 是 Graphics Device Interface 的缩写,含义是图形设备接口,它的主 要任务是负责系统与绘图程序之间的信息交换, 处理所有 Windows 程序的图形输 出。
C#.net地图控件开发(五)GDI+图形图像编程基础3.画刷和画刷类型Brush类型是一个抽象类,所以它不能被实例化,也就是不能直接应用,但是我们可以利用它的派生类,如:HatchBrush、SolidBrush、T extureBrush、LinearGradientBrush和PathGradientBrush等。
画刷类型一般在System.Drawing命名空间中,如果应用HatchBrush和GradientBrush画刷,需要在程序中引入System.Drawing.Drawing2D命名空间。
1. SolidBrush(单色画刷)它是一种一般的画刷,通常只用一种颜色去填充GDI+图形,例如:protected override void OnPaint(PaintEventArgs e){Graphics g = e.Graphics;SolidBrush sdBrush1 = new SolidBrush(Color.Red);SolidBrush sdBrush2 = new SolidBrush(Color.Green);SolidBrush sdBrush3 = new SolidBrush(Color.Blue);g.FillEllipse(sdBrush2, 20, 40, 60, 70);Rectangle rect = new Rectangle(0, 0, 200, 100);g.FillPie(sdBrush3, 0, 0, 200, 40, 0.0f, 30.0f );PointF point1 = new PointF(50.0f, 250.0f);PointF point2 = new PointF(100.0f, 25.0f);PointF point3 = new PointF(150.0f, 40.0f);PointF point4 = new PointF(250.0f, 50.0f);PointF point5 = new PointF(300.0f, 100.0f);PointF[] curvePoints = {point1, point2, point3, point4,point5 };g.FillPolygon(sdBrush1, curvePoints);}2. HatchBrush(阴影画刷)HatchBrush类位于System.Drawing.Drawing2D命名空间中。
第5章 GDI+GDI+(Graphics Device Interface Plus 图形设备接口加)是Windows XP 和Windows Server 2003操作系统的图形子系统,也是.NET 框架的重要组成部分和窗体绘图的主要工具,负责在屏幕和打印机上绘制图形图像和显示信息。
顾名思义,GDI+是Windows 早期版本所提供的图形设备接口GDI 的后续版本。
GDI+是一种应用程序编程接口(API),分别通过一套C++类和一套部署为托管代码的类来展现,这两套类分别被称为GDI+的“C++封装”和“托管类接口”。
GDI+不但在功能上比GDI 要强大很多,而且在代码编写方面也更简单,因此会很快成为Windows 图形图像程序开发的主要工具。
本章将介绍GDI+的特点和新增功能,以及GDI+ API 的具体使用方法,包括二维矢量图形的绘制、图像处理的应用、以及文字的显示等。
由于本章内容较多,有些章节不作为基本要求,用*号表示的章节是可选的。
5.1 概述GDI+与GDI 一样,都具有设备无关性。
而且GDI+是建立在GDI 之上的一种高层接口,供Windows 应用程序和.NET 框架调用。
参见下图:GDI+的体系结构本节首先介绍GDI+的几个主要新增的特性及其功能,然后说明它给Windows 图形图像程序的开发模式带来的变化,最后给出一个代码实例,介绍如何在VC++中使用GDI+进行程序开发。
1.GDI+的功能GDI+主要提供了以下三种功能:1)二维矢量图形与MFC中代表GDI的CDC和CGDIObject的诸派生类(CPen、CBrush、CFont等)类似,GDI+的Graphics等类也提供绘制各种二维矢量图形(如直线、折线、矩形、椭圆、多边形等)的功能。
而且GDI+还增加了许多新的特性和功能,如无当前状态的绘图模式、含透明成分(α混色)的颜色类Color、图案笔、颜色可渐变的刷、贝塞尔和样条曲线、持久的路径、可伸缩的区域、功能强大的矩阵和变换等等。
GDI+ SDK参考(翻译版本)序言.............................................................................................................................................- 4 - 目标.....................................................................................................................................- 4 - 适用范围.............................................................................................................................- 4 - 适用读者.............................................................................................................................- 4 - 运行环境.............................................................................................................................- 4 - 文档组织.............................................................................................................................- 4 - 相关主题.............................................................................................................................- 4 - GDI+的安全考虑........................................................................................................................- 6 - 检验构造函数调用成功与否..............................................................................................- 6 - 分配缓冲区.........................................................................................................................- 6 - 错误校验.............................................................................................................................- 7 - 线程同步.............................................................................................................................- 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 -序言目标Microsoft Windows GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API)。