第7章位图应用
第7章 位图应用
位图的基本概念 位图基础知识 位图的结构与表示 2.在VC中使用与操作位图 使用 CBitmap类操作位图 使用API函数操作DDB位图 使用API函数操作DB位图 3.位图应用的实例 位图按钮的实现
1. 位图的基本概念 • 位图基础知识 • 位图的结构与表示 2. 在VC中使用与操作位图 • 使用CBitmap类操作位图 • 使用API函数操作DDB位图 • 使用API函数操作DIB位图 3. 位图应用的实例 • 位图按钮的实现
位图基础知 位图与矢量图 位图:光栅图,以像素来表示图像,记录每个像素的颜色、亮 度等属性 矢量图:采用数学方法来描述构成图像的一系列形状和线段 2.位图的彩色模式 颜色深度:描述每个像素占用的二进制位数 彩色模式:在描述颜色时,需要对颜色数字化,在显示颜色时, 需要解析描述颜色的数据并将颜色信息恢复到输出设备上,这 种描述颜色的数值化方法称为彩色模式,RGB、CMYK 3. Windows中的位图 DDB位图:依赖与显示设备的位图 DB位图:设备无关位图
位图基础知识 1. 位图与矢量图 • 位图:光栅图,以像素来表示图像,记录每个像素的颜色、亮 度等属性 • 矢量图:采用数学方法来描述构成图像的一系列形状和线段 2. 位图的彩色模式 • 颜色深度:描述每个像素占用的二进制位数 • 彩色模式:在描述颜色时,需要对颜色数字化,在显示颜色时, 需要解析描述颜色的数据并将颜色信息恢复到输出设备上,这 种描述颜色的数值化方法称为彩色模式,RGB、CMYK 3. Windows中的位图 • DDB位图:依赖与显示设备的位图 • DIB位图:设备无关位图
位图的结构与表示 DDB位图的结构与表示 与设备相关位图只能存在于内存中 结构信息由结构体 BITMAP描述,说明位图类型、尺寸、 颜色格式、位数等信息 CBitmap类封装了对DDB位图的操作 2.DB位图:可以以磁盘文件的形式存在,描述信息由以下四个 部分构成 文件头: BITMAPFILEHEADER结构体描述,说明类型 文件大小(字节)及图形数据的起始位置 位图信息头:由 BITMAPINFC描述,包含两部分 BITMAPINFOHEADER,描述位图大小及颜色格式 颜色信息: RGBQUAD,描述图形的颜色表 位图数据区:记录位图的每一个像素
位图的结构与表示 1. DDB位图的结构与表示 • 与设备相关位图只能存在于内存中 • 结构信息由结构体BITMAP描述,说明位图类型、尺寸、 颜色格式、位数等信息 • CBitmap类封装了对DDB位图的操作 2. DIB位图:可以以磁盘文件的形式存在,描述信息由以下四个 部分构成 • 文件头:BITMAPFILEHEADER结构体描述,说明类型、 文件大小(字节)及图形数据的起始位置 • 位图信息头:由BITMAPINFO描述,包含两部分 • BITMAPINFOHEADER,描述位图大小及颜色格式 • 颜色信息:RGBQUAD,描述图形的颜色表 • 位图数据区:记录位图的每一个像素
使用 CBitmap类操作位图 读取并显示位图 插入位图资源并分配资源标识符 构造位图类对象,使用 LoadBitmap将位图资源装入 构造内存设备上下文, Create CompatibleDC 将位图选入内存设备上下文, Selectobject 使用 Bitblt、 StretchBlt将位图输出到显示设备上下文 2.绘制并显示位图 构造内存设备上下文 构造位图类对象并对其初始化, Create Compatible Bitmap等 将位图对象选入内存设备上下文 调用内存设备上下文的GD函数绘制位图 调用 Bitblt、 StretchBlt输出位图到显示设备上下文
使用CBitmap类操作位图 1. 读取并显示位图 • 插入位图资源并分配资源标识符 • 构造位图类对象,使用LoadBitmap将位图资源装入 • 构造内存设备上下文,CreateCompatibleDC • 将位图选入内存设备上下文,SelectObject • 使用BitBlt、StretchBlt将位图输出到显示设备上下文 2. 绘制并显示位图 • 构造内存设备上下文 • 构造位图类对象并对其初始化,CreateCompatibleBitmap等 • 将位图对象选入内存设备上下文 • 调用内存设备上下文的GDI函数绘制位图 • 调用BitBlt、StretchBlt输出位图到显示设备上下文