GDI+ SDK参考手册:C++图形编程接口详解

需积分: 9 18 下载量 144 浏览量 更新于2024-11-17 收藏 1.66MB PDF 举报
"GDI+ SDK参考" GDI+(Graphics Device Interface Plus)是微软为C/C++开发者提供的一种图形处理库,它是一个基于类的API,用于创建图形、处理图像和管理文本。GDI+的主要目标是让程序员能够更方便地在视频显示器和打印机上绘制图形和格式化的文本,而无需直接与硬件交互。通过GDI+,开发者可以避免与底层设备驱动程序的复杂交互,简化了图形渲染的过程。 GDI+不仅支持32位的Microsoft Win32应用程序,还兼容64位的Win64环境。在Windows XP和Windows Server 2003系统中,GDI+是内置的,而在较旧的操作系统如Windows NT 4.0 SP6、Windows 2000、Windows 98和Windows Me上,如果需要使用GDI+,则需要在应用程序分发时一并包含GDI+的库文件。 对于开发者来说,熟悉GDI+需要具备Windows图形用户界面(GUI)和消息驱动机制的基础知识。主要的库文件Gdiplus.dll在Windows XP系统中默认存在,但若要在其他系统中使用,可能需要单独安装或与应用程序一起分发。当在不同的系统平台上部署GDI+时,应确保Gdiplus.dll放置在应用程序目录下,并且考虑使用/BASE链接器选项来设定基地址,防止与其他库的地址空间冲突。 GDI+的文档组织结构清晰,包括以下几个部分: 1. 概览:这部分提供了GDI+的基本介绍,概述了它的功能和用途。 2. 用法:详细解释了如何使用GDI+来完成各种任务,包括示例代码,帮助开发者了解如何实际操作。 3. 参考:这部分是GDI+的API参考,列出了所有可用的C++基类接口,包括绘图对象、图形状态、颜色管理、文本渲染、图像处理等类和方法。 通过这些文档,开发者可以深入理解GDI+的各个方面,从而利用这个强大的库来创建具有高质量图形和文本渲染的Windows应用程序。对于需要跨平台兼容性或高级图形功能的开发者来说,掌握GDI+是非常有价值的。
2016-08-29 上传
Visual C++6.0使用GDI+的一般方法 1. 载解压GDI+开发包; 2. 正确设置include & lib 目录; 3. stdafx.h 添加: #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include 4. 程序中添加GDI+的包含文件gdiplus.h以及附加的类库gdiplus.lib。 通常gdiplus.h包含文件添加在应用程序的stdafx.h文件中,而gdiplus.lib可用两种进行添加: 第一种是直接在stdafx.h文件中添加下列语句: #pragma comment( lib, "gdiplus.lib" ) 另一种方法是: 在VC.net中添加库文件在:项目菜单->属性->链接器->输入 举个例子: (1)在应用程序项目的应用类中,添加一个成员变量,如下列代码: ULONG_PTR m_gdiplusToken; 其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 (2)在应用类中添加ExitInstance的重载,并添加下列代码用来关闭GDI+: int CGDITestApp::ExitInstance() { Gdiplus::GdiplusShutdown(m_gdiplusToken); return CWinApp::ExitInstance(); } (3)在应用类的InitInstance函数中添加GDI+的初始化代码: 注意:下面这些GDI+的初始化代码必须放在m_pMainWnd->UpdateWindow();之前。 CWinApp::InitInstance(); Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); (4)在需要绘图的窗口或视图类中添加GDI+的绘制代码。 下面分别就单文档和基于对话框应用程序为例,说明使用GDI+的一般过程和方法。 1. 在单文档应用程序中使用GDI+ 在上面的过程中,我们就是以一个单文档应用程序Ex_GDIPlus作为示例的。下面列出第4步所涉及的代码: void CGDITestView::OnDraw(CDC* pDC) { CGDITestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here usingnamespace Gdiplus; Graphics graphics(pDC->m_hDC); Pen newPen(Color(255,0,0),3); HatchBrush newBrush(HatchStyleCross,Color(255,0,255,0),Color(255,0,0,255));//创建一个填充画刷,前景色为绿色,背景色为蓝色 graphics.DrawRectangle(&newPen,50,50,100,60);// 在(50,50)处绘制一个长为100,高为60的矩形 graphics.FillRectangle(&newBrush,50,50,100,60); // 在(50,50)处填充一个长为100,高为60的矩形区域 } 编译并运行,结果如图:
2012-08-16 上传
GDI+ SDK参考中文版 即GDI+ SDK参考手册的翻译版本,希望对大家有用! 目录: 关于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