高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第7章 位图应用

第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 Compatible 将位图选入内存设备上下文, Selectobject 使用 Bitblt、 StretchBlt将位图输出到显示设备上下文 2.绘制并显示位图 构造内存设备上下文 构造位图类对象并对其初始化, Create Compatible Bitmap等 将位图对象选入内存设备上下文 调用内存设备上下文的GD函数绘制位图 调用 BitBlt、 StretchBlt输出位图到显示设备上下文
使用CBitmap类操作位图 1. 读取并显示位图 • 插入位图资源并分配资源标识符 • 构造位图类对象,使用LoadBitmap将位图资源装入 • 构造内存设备上下文,CreateCompatibleDC • 将位图选入内存设备上下文,SelectObject • 使用BitBlt、StretchBlt将位图输出到显示设备上下文 2. 绘制并显示位图 • 构造内存设备上下文 • 构造位图类对象并对其初始化,CreateCompatibleBitmap等 • 将位图对象选入内存设备上下文 • 调用内存设备上下文的GDI函数绘制位图 • 调用BitBlt、StretchBlt输出位图到显示设备上下文

使用API函数操作DDB位图 1.创建位图, Create Compatible Bitmap、 CreateBitmap 2.创建内存设备上下文, Create Compatible 3. BitBlt、 StretchBlt绘图函数 4.要点:掌握句柄与类对象之间的相互转换 API函数使用句柄标识位图、设备上下文等对象 可以将位图句柄转换为位图类对象,调用格式为 Cbitmap 'pBitmap=Cbitmap From Handle(hBitmap) 将句柄转换为位图类对象, HBITMAP hBitmap (HBITMAP) pBitmap->GetSafehandleo 设备上下文类对象和句柄也可以采用类似的方法相互转换
使用API函数操作DDB位图 1. 创建位图,CreateCompatibleBitmap、CreateBitmap 2. 创建内存设备上下文,CreateCompatibleDC 3. BitBlt、StretchBlt绘图函数 4. 要点:掌握句柄与类对象之间的相互转换 • API函数使用句柄标识位图、设备上下文等对象 • 可以将位图句柄转换为位图类对象,调用格式为Cbitmap *pBitmap = Cbitmap:FromHandle ( hBitmap ) • 将句柄转换为位图类对象,HBITMAP hBitmap = (HBITMAP) pBitmap->GetSafeHandle() • 设备上下文类对象和句柄也可以采用类似的方法相互转换

使用API函数操作DB位图 1.从DDB位图中产生DB位图, GetDIBits 2.将DB位图转换为DDB位图, Setdibits、 CreateDIBitmap等 3.输出DB位图, StretchDIBits 4.实例:实现应用程序的启动画面 实质:在显示程序窗口之前,创建窗口显示位图,经过适当 延时后,关闭位图窗口,继续程序运行 插入位图,分配资源标识符 创建用来显示位图的窗口类(CWnd派生) 在窗口类的 Create函数中,创建位图,获取位图信息,将 DB位图转换为DDB位图,将窗口显示于屏幕中央 映射窗口类的 WM PAINT消息,输出位图 在应用程序类的 InitInstance创建并更新窗口,延时后关闭之 要点:GeDC(NULL),可获得操作整个屏幕的设备上下文
使用API函数操作DIB位图 1. 从DDB位图中产生DIB位图,GetDIBits 2. 将DIB位图转换为DDB位图,SetDIBits、CreateDIBitmap等 3. 输出DIB位图,StretchDIBits 4. 实例:实现应用程序的启动画面 • 实质:在显示程序窗口之前,创建窗口显示位图,经过适当 延时后,关闭位图窗口,继续程序运行 • 插入位图,分配资源标识符 • 创建用来显示位图的窗口类(CWnd派生) • 在窗口类的Create函数中,创建位图,获取位图信息,将 DIB位图转换为DDB位图,将窗口显示于屏幕中央 • 映射窗口类的WM_PAINT消息,输出位图 • 在应用程序类的InitInstance创建并更新窗口,延时后关闭之 • 要点:::GetDC(NULL),可获得操作整个屏幕的设备上下文

位图按钮的实现 1.制作位图,每个按钮最多4种状态,可制作1~4个位图文件 2.将位图插入资源中,分配字符串标识符 3.添加按钮控件,设置属性的 Ownerdraw属性 4.在对话框类中添加 CBitmapButton类对象成员,在构造函数中调用 Load Bitmaps,将位图资源装入位图按钮类对象中 5.在对话框的 IInitDialog中,调用 SubclassDlgltem,用位图按钮类的消 息映射接替按钮类的消息映射 6.更简洁的方法: 添加按钮控件,制作位图并插入位图资源中 设置按钮的 Caption属性(英文不重复),设置字符串标识符为 对应按钮的 Caption(转换为大写)加上表示状态的大写字母 (U、D、F、Ⅹ) 定义 CBitmapButton成员变量,在构造函数中调用 AutoLoad成 员,自动实现按钮与位图资源的关联
位图按钮的实现 1. 制作位图,每个按钮最多4种状态,可制作1~4个位图文件 2. 将位图插入资源中,分配字符串标识符 3. 添加按钮控件,设置属性的Ownerdraw属性 4. 在对话框类中添加CBitmapButton类对象成员,在构造函数中调用 LoadBitmaps,将位图资源装入位图按钮类对象中 5. 在对话框的InitDialog中,调用SubclassDlgItem,用位图按钮类的消 息映射接替按钮类的消息映射 6. 更简洁的方法: • 添加按钮控件,制作位图并插入位图资源中 • 设置按钮的Caption属性(英文不重复),设置字符串标识符为 对应按钮的Caption(转换为大写)加上表示状态的大写字母 (U、D、F、X) • 定义CBitmapButton成员变量,在构造函数中调用AutoLoad成 员,自动实现按钮与位图资源的关联
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第6章 图形设备接口.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第5章 文档、视结构.ppt
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_试验指导书(3/3).doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_试验指导书(2/3).doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_试验指导书(1/3).doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_电子商务训练平台操作手册.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_电子商务考试操作手册.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_电子商务考试平台安装手册(新系统).doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_辅导与复习.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_考试复习题(30题).doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_所有习题.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_商务试题辅导.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_习题总.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第九章 基于电子商务的物流与供应链管理.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第八章 电子商贸与报文交换技术.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第七章 网络营销及策略.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第六章 电子商务的安全与管理.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第五章 电子商务虚拟市场及其运营.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第四章 电子商务系统.doc
- 广州航海学院(广州航海高等专科学校):《电子商务》课程教学资源_第三章 基于Internet的电子商务.doc
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第8章 进程与线程.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第9章 MFC通用类.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第10章 静态链接库和动态链接库.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第11章 打印与打印预览.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第12章 高级编程.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第1章 引论.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第2章 Windows 窗口命令.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第3章 对话框和常见控件.ppt
- 高等学校计算机专业教材:《Windows程序设计》课程教学资源(PPT课件讲稿)第4章 ActiveX控件.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第2章 中英文键盘输入技术.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第5章 电子表格软件Excel 2000.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第6章 中文演示软件Powerpoint 2000.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第1章 计算机基础知识.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第7章 多媒体技术.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第8章 计算机网络基础知识及Internet应用.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第4章 文字处理软件Word 2000.ppt
- 《计算机基础应用》课程教学资源(PPT课件)第3章 Windows 2000 操作系统.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第1章 数据库应用基础.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第2章 Visual FoxPro 6.0概述.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第3章 数据类型、表达式、函数.ppt