- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BMP文件处理
位图和Bitblt
位图是一个二维的位数组,此数组的每一个元素与图像的像素一一对应。现实世界的图像被捕获以后,图像被分割成网格,并以像素作为取样单位。位图中的每个像素值指明了一个单位网格内图像的平均颜色。
位图代表了Windows程序中存储图像信息的两种方法之一,另一种形式是元文件。
位图也有两种:GDI位图对象和设备无关的位图(DIB: device-independent bitmap)。
位图基础
位图常用来表示来自真实世界的复杂图像,元文件更适合于描述由人或者机器生成的图像。它们都能存于内存或作为文件存于磁盘上,且能通过剪贴板在Windows应用程序间传输。
位图和元文件的区别在于光栅图像和矢量图像间的差别。光栅图像用离散的像素来处理输出设备;矢量图像用笛卡尔坐标系统来处理输出设备,可在其中绘制线和填充对象。
位图的缺点:1、容易受设备依赖性的影响。2、位图常暗示了特定的显示分辨率和图像纵横比,在缩放后容易出现失真。3、存储空间大。
但位图具有处理速度快的优点。
位图可以手工创建,也可计算机代码生成,还可由硬件设备把现实世界输入到计算机,如数码相机,它们通常是使用接触到光就释放电荷的电荷耦合装置(CCD: charge-coupled device)将光的强度转换为电荷,再用模数转换装置(ADC: Analog-to-digital)转换为数字再排列为位图。
位图尺寸
位图呈矩形,具有空间尺寸,以像素为单位度量位图的高度和宽度。以位于图像左上角为位图原点,从0开始计数。
位图的空间尺寸也指定了其分辨率,但此词具有争议,分辨率也指单位长度内的像素数。
位图是矩形的,但内存是线性的。大多数位图按行存储在内存中,且从顶行像素开始从左到右直到底行结束。
位图还有颜色度量单位:指每个像素所需要的位数,也称颜色深度(color depth)、位数(bit-count)、或位/每像素(bpp: bits per pixel)。每个像素用1位来描述的位图称为二级(bilevel)、二色(bicolor)或单色(monochrome)位图。每个像素也可用多位来描述,可以表示的颜色数等于2的i次方(i为位数)。
如何将颜色位的组合与人们所熟识的颜色相对应是处理位图时经常出现的问题。
位块传送
一、BitBlt函数:原样复制
整个视频显示器可看作是一幅大位图,其上的像素由存储在视频显示适配卡上内存中的位来描述。所以,我们可以使用BitBlt函数来完成将图像从视频显示的一个区域复制到另一个区域。这就是位块传送(bit-block tranfer)。此函数是像素移动程序,实际上对像素执行了一次位运算操作。
BitBlt函数从称为“源”的设备描述表中将一个矩形区的像素传送到称为“目标”的另一个设备描述表中相同大小的矩形区。源和目标设备描述表可以相同。此函数语法如下:
BitBlt(hdcDst,xDst,yDst,cx,cy,hdcSrc,xSrc,ySrc,dwROP);
xSrc和ySrc参数指明了源图像左上角在源设备描述表中的坐标位置。cx和cy是图像的宽度和高度。xDst和yDst是图像复制到的设备描述表中的坐标位置。dwROP是光栅操作符。
注意:BitBlt是从实际视频显示内存传送像素,也就是说整个显示屏上的图像都存于显存中,若图像超出了显示屏,那么BitBlt只传送在显示屏上的部分。
BitBlt的最大限制是两个设备描述表必须兼容,就是说两者的每个像素都具有相同的位数。所以,不能用它将屏幕上的某些图形复制到打印机。
二、StretchBlt函数:拉伸位图
此函数语法如下:StretchBlt(hdcDst,xDst,yDst,cxDst,cyDst,
hdcSrc,xSrc,ySrc,cxSrc,cySrc,dwROP);
BitBlt和StretchBlt函数中所有的坐标与大小都是基于逻辑单位的。但如果BitBlt函数中有两个不同的设备描述表,而这两个设备描述表引用相同的物理设备却具有不同的映射模式时,BitBlt就不明确了:cx和cy都是逻辑单位,它们同样应用于源设备描述表和目标设备描述表中的矩形区。此时,所有的坐标和尺寸必须在实际的位传送之前转换为设备坐标。cx和cy同时用于源和目标设备描述表,所以必须分别转换为设备描述表自己的单位。(?)
三、PatBlt函数:绘制填充图形
语法如下:PatBlt(hdc,x,y,cx,cy,dwROP);
GDI位图对象:也称为设备相关位图或者DDB
创建DDB
DDB是Windows图形设备接口的图形对象之一(其中还包括画笔、画刷、字体、元文件和调色板)。这些图形对象保存在GDI模式内部,由应用程序软件的数字句柄引用。用HBITMAP类型的变量存储DDB句柄:HBITMAP hBit
您可能关注的文档
- 译林版牛津英语9BUnit2 Integrated skills---Teaching plan.doc
- hi-hoo2011新年.ppt
- 非参数假设检验方.ppt
- [Name]授课课件.ppt
- 人五下第三单元长正方体的认识3.doc
- 市场营销学教案第一章.docx
- 2011全国各地理综物理试题汇编.doc
- 安全长效管理措施.doc
- 五联建设路项目单页文案.doc
- xUnit自动化测试体系v0.3.pdf
- 历史的巨响 奋进的力量纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 历史的巨响 奋进的力量:纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年度中考政 治试题(word版,含答案).doc
- 吉林省2016年中考政治试卷及答案【word版】.doc
- 2016年吉林省中考政治试题及答案解析.doc
- 吉林2016年初中毕业生学业考试.doc
- 竞聘技校数学老师演讲.docx
- 2016年吉林省中考政治试题解析.doc
文档评论(0)