文档介绍:第7章位图应用
位图的基本概念
位图基础知识
位图的结构与表示
在VC中使用与操作位图
使用CBitmap类操作位图
使用API函数操作DDB位图
使用API函数操作DIB位图
位图应用的实例
位图按钮的实现
位图基础知识
位图与矢量图
位图:光栅图,以像素来表示图像,记录每个像素的颜色、亮度等属性
矢量图:采用数学方法来描述构成图像的一系列形状和线段
位图的彩色模式
颜色深度:描述每个像素占用的二进制位数
彩色模式:在描述颜色时,需要对颜色数字化,在显示颜色时,需要解析描述颜色的数据并将颜色信息恢复到输出设备上,这种描述颜色的数值化方法称为彩色模式,RGB、CMYK
Windows中的位图
DDB位图:依赖与显示设备的位图
DIB位图:设备无关位图
位图的结构与表示
DDB位图的结构与表示
与设备相关位图只能存在于内存中
结构信息由结构体BITMAP描述,说明位图类型、尺寸、颜色格式、位数等信息
CBitmap类封装了对DDB位图的操作
DIB位图:可以以磁盘文件的形式存在,描述信息由以下四个部分构成
文件头:BITMAPFILEHEADER结构体描述,说明类型、文件大小(字节)及图形数据的起始位置
位图信息头:由BITMAPINFO描述,包含两部分
BITMAPINFOHEADER,描述位图大小及颜色格式
颜色信息:RGBQUAD,描述图形的颜色表
位图数据区:记录位图的每一个像素
使用CBitmap类操作位图
读取并显示位图
插入位图资源并分配资源标识符
构造位图类对象,使用LoadBitmap将位图资源装入
构造内存设备上下文,patibleDC
将位图选入内存设备上下文,SelectObject
使用BitBlt、StretchBlt将位图输出到显示设备上下文
绘制并显示位图
构造内存设备上下文
构造位图类对象并对其初始化,patibleBitmap等
将位图对象选入内存设备上下文
调用内存设备上下文的GDI函数绘制位图
调用BitBlt、StretchBlt输出位图到显示设备上下文
使用API函数操作DDB位图
创建位图,patibleBitmap、CreateBitmap
创建内存设备上下文,patibleDC
BitBlt、StretchBlt绘图函数
要点:掌握句柄与类对象之间的相互转换
API函数使用句柄标识位图、设备上下文等对象
可以将位图句柄转换为位图类对象,调用格式为Cbitmap *pBitmap = Cbitmap:FromHandle ( hBitmap )
将句柄转换为位图类对象,HBITMAP hBitmap = (HBITMAP) pBitmap->GetSafeHandle()
设备上下文类对象和句柄也可以采用类似的方法相互转换
使用API函数操作DIB位图
从DDB位图中产生DIB位图,GetDIBits
将DIB位图转换为DDB位图,SetDIBits、CreateDIBitmap等
输出DIB位图,StretchDIBits
实例:实现应用程序的启动画面
实质:在显示程序窗口之前,创建