




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.BMP图像的结构与显示BMP文件是Windows操作系统所推荐和支持的图像文件格式,是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式,所以称为位图(bitmap)文件,因其文件扩展名为BMP,故称为BMP文件格式,简称BMP文件。BMP图像文件被分成4个部分:位图文件头(Bitmap File Header)、位图信息头(Bitmap Info Header)、颜色表(Color Map)和位图数据(即图像数据,Data Bits或Data Body)。为了实现BMP图像的各种处理(如显示 ,平滑 ,锐化等),我们必须清楚BMP 图像文件的组成 ,下面将详细介绍一下BMP 图像的文件格式。1.1 BMP图像的文件格式BMP图像文件由文件头、文件信息头、调色板和图像数据组成。(1)文件头 文件头是一个结构 ,长度为 14 个字节 ,各组成部分如下:WORD bfType / 2 个字节表示文件类型 ,其值为“BMDWORD bfSize / 4 个字节表示文件的大小。WORD bfReserved1 / 2 个字节保留 ,其值为 0。WORD bfReserved1 / 2 个字节保留 ,其值为 0。DWORD bfOffBits / 4 个字节表示第一个像素的偏移量由文件头可以获得该文件型、小及第一个像素的偏移地址。(2)文件信息头文件信息头也是一个结构体,长度为40个字节,各组成部分如下:DWORLD biSize / 4个字节存放文件信息头的长度,其值为40。LONG biWidth / 4个字节存放位图的宽度。LONG biHeight / 4个字节存放位图的高度。WORD biplanes / 2个字节存放平面的数目,其值为1。WORD biBitcount /两个字节存放每个像素所占的位数,其值可以是1,4,8,24等。DWORD biCompression / 4个字节指定位图是否压缩,其值可以是常值BI_RGB,BI_RLE8,BI_RLE4等。如果没有压缩则为BI_RGB(即0)。DWORD biSizeImage / 4个字节表示位图的实际大小。LONG biXPelsPerMeter / 4个字节指定目标设备的水平分辨率,通常不用将其设为0。LONG biYPelsPerMeter / 4个字节指定目标设备的垂直分辨率,通常不用将其设为0。DWORD biClrUsed / 4个字节指定图像实际用到的颜色数,若使用所有颜色则值为0。DWORD biClrImportant / 4个字节指定图像中重要的颜色数,若全部重要则值为0。由文件信息头可以获得有关位图的详细信息,位图的实际大小并不等于biWidth和biHeight的乘积。因为在保存位图时要求每一行的字数必须是4的整数倍,如果不是,则需要补齐。(3) 颜色表颜色表实际上是一个RGBQUAD结构的数组,数组的长度由biClrUsed指定(如果该值为零,则由biBitCount指定,即2的biBitCount次幂个元素)。RGBQUAD结构是一个结构体类型,占4个字节,其定义如下:BYTE rgbRed /红色分量BYTE rgbGreen /绿色分量BYTE rgbBlue /蓝色分量BYTE rgbReserved /保留位有些位图需要颜色表;有些位图(如真彩色图)则不需要颜色表,颜色表的长度由BITMAPINFOHEADER结构中biBitCount分量决定。对于biBitCount值为1的二值图像,每像素占1bit,图像中只有两种(如黑白)颜色,颜色表也就有21=2个表项,整个颜色表的大小为2*sizeof(RGBQUAD)=2*4=8个字节;对于biBitCount值为8的灰度图像,每像素占8bit,图像中有28=256种颜色,颜色表也就有256个表项,且每个表项的R、G、B分量相等,整个颜色表的大小为256*sizeof(RGBQUAD)=256*4=1024个字节;而对于biBitCount=24的真彩色图像,由于每像素3个字节中分别代表了R、G、B三分量的值,此时不需要颜色表,因此真彩色图的BITMAPINFOHEADER结构后面直接就是位图数据。(4)位图数据 紧跟在颜色表之后的是图像数据字节阵列,即图像数据,记录了图像的每一个像素值。对于有颜色表的位图,位图数据就是该像素颜色在调色板中的索引值;对于真彩色图,位图数据就是实际的R、G、B值(三个分量的存储顺序是B、G、R)。相应地,对于2色图象,用1位表示颜色,因此一个字节表示8个像素;对于16色图象,用4位表示一个像素的颜色,一个字节表示2个像素;对于256色图象,用8位表示一个像素的颜色,一个字节只表示1个像素。图像的每一扫描行由表示图像的像素的连素字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。扫描行是由底向上存储的,这就是说,阵列中的每一个字节表示位图左下角的像素,而最后一个字节表示位图右上角的像素。1.2 BMP图象文件显示在VC+的的应用程序中显示图像 ,通常有两种方法。一种方法是在应用程序中加入固定的位图,为该图指定ID,使用静态图片控件或ActiveX控件来显示图象。另一种方法是使用位图类Cbitmap,利用LoadImage函数动态地从系统盘的文件中载入位图图像 ,将载入的图像句柄和Cbitmap类相关连。使用BitBlt函数把位图拷贝到能够显示图像的设备场境中。设备场境中包含有关于系统、应用程序和绘图窗口的信息。我们还可以使用 StretchBlt 函数拷贝图像 ,并调整图像的大小 ,使之适合在特定的设备场境中显示。各函数的用法如下所示:HBITMAP hbitmap;/*加载BMP文件,filename为BMP文件名*/Hbitmap=(HBITMAP):LoadImage(AfxGetInstanceHandle(),filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);/*Bitmap为Cbitmap类的一个对象,实现图象句柄和类相关连*/Bitmap.Attach(hbitmap);/*拷贝位图到屏幕*/BitBlt(10,10,width,height,&dc,0,0,SRCCOPY);/*拷贝图象并调整显示大小*/StrwtchBlt(10,10,Rwidth,Rheight,&dc,width,height,SRCCOPY);实际上,由BMP图象文件格式可以很方便地从文件中读出各部分信息,在获得调色板和图象数据后,利用SetDIBitsToDevice函数或StrechDIBits函数来显示图象或打印图象。2颜色表的修改2.1 RGB模型RGB模式是基于自然界中3种基色光的混合原理,将R、G、B三种基色按照从0(黑)到255(白色)的亮度值在每个色阶中分配,从而指定其色彩,当不同亮度的基色混合后共产生=16777216种颜色。在理想条件下,加色原理R+G=Y,R+B=M,G+B=C。当3种基色的亮度值相等时,产生灰色,当3种亮度值都是255时,产生纯白色;而当所有亮度值都是0时,产生纯黑色。当3种色光混合生成的颜色一般比原来的颜色亮度值高,所以RGB模式产生颜色的方法又被称为加色混合。2.2 颜色表的修改一幅图像有众多的事物,为了按照人们的意愿,传达某种信息,突出自己最想表达的信息,可以用色彩来完成!那么,在我们的图像中如何完成这样的任务呢?256色的BMP格式的图像是有颜色表的。颜色表分R,G,B三种基色。首先,我们应该把颜色表找到并提取出来。根据BMP图像数据存储的特点,我们很容易找到颜色表。找到颜色表之后,按照我们的需要,我们所想表达突出的色彩就可以通过修改颜色表的R,G,B三基色的值来完成。将三基色提取出来,并恰当的更改三基色在0到255间的值的大小,使得某种颜色变得突出,以来表达我们想要突出的色彩!例如我们想使花变的更红一些,我们就可以适当的增加R基色在0到255间的值,减小G,B两种基色的大小,也就是改变G、B基色在0到255间的值,那么红色的像素点就会增加红的级数,这样就会使图像的红色更加突出。同理,适当增加G基色在0到255间的值,减小R,B两种基色在0到255间的值,绿色的像素点也就相应的增加了级数,那么就可以使图像的绿色更加突出。例如在一幅春天草地的图像中,增加G基色的级数,就可以使小草显得生机勃勃,以表达春意盎然的景象和情感,完成我们的表达重点了!我们更改了256色的BMP格式的颜色表,让原有的图像的某种颜色更加突出,来实现我们所需要的色彩的突出。我们更改某种基色,或者更改几种基色,即重新给某种基色在0到255间赋值,使得图像的像素都随之适当变化,达到我们所需的效果。3实验结果与分析 以512*512的256色图像进行结果的验证分析。程序运行结果图如下:图1 原图图2 原图的颜色表图4 蓝色突出效果图3修改颜色表对话框图5蓝色效果颜色表图1为程序运行打开的原图,图2为程序运行获得的颜色表。图3 为修改颜色表的对话框,这次修改颜色表目的是突出蓝色效果,变化后的结果为图4。图5为修改颜色表突出蓝色效果后,获得的颜色表,在这幅颜色表截图中可以很明显的看到颜色表中蓝色的颜色条增加了许多。同理可获得绿色和红色的突出效果。如图6,图7,图8,图9所示。图7 绿色效果颜色表图6 绿色突出效果图9 红色效果颜色表图8 红色突出效果4.总结本文讨论了基于VC+6.0集成开发环境,打开一幅256色BMP图像,通过修改其颜色表获得相应的颜色突出效果。本文对BMP图像的结构特点和显示做了简单的介绍,着重于颜色表的修改。本次的实现,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 惊蛰绘画课件
- 情景导入课件过去进行时
- 幼儿园钓鱼活动方案
- 江苏镇江市2026届化学高二第一学期期末复习检测试题含答案
- 国庆节晚宴的策划方案
- java静态内部面试题及答案
- 剪辑师考试题及答案
- 历峰集团面试题及答案
- 家电公司医疗保险管理办法
- 高邮招聘面试题及答案
- 兼职音乐教师合同范例
- 科研项目管理质量承诺
- 《妊娠合并阑尾炎》课件
- 21、学生饮用奶食品安全应急预案
- 特立帕肽治疗骨质疏松性骨折中国专家共识(2024版)解读
- 第一章 有理数 大单元教学设计-2024-2025学年七年级数学上册(人教版2024)
- 2024米面油采购合同范本
- AQ 2029-2010 金属非金属地下矿山主排水系统安全检验规范(正式版)
- 小学小升初数学试卷(基础题)
- 2024年交管12123学法减分考试题库和答案
- 2022版数学新课程标准高中数学新课程标准2022
评论
0/150
提交评论