- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
问题:将一张bmp图像的灰度值压缩存储到一个中间文件,然后利用中间文件还原这张图片。
初一看,这应该是两个程序吧,一个压缩程序一个解压程序。那就先压缩好喽,恩,压缩...可是要怎么读取它的灰度值呀?文件里不会只保存它的灰度值吧,点开属性,发现这是一张256*192的图片,如果图片文件里只有灰度值,那么大小应该是256*192 B,而实际大小是50230字节。。可见还有其它信息,根据经验,应该还有一个对图像的描述信息吧,这样那些图像显示程序才能知道以怎样的方式去显示它,毕竟不是所有的bmp图片都是灰度图片。额,只好求助百度了.............经过整理,我把bmp图像编码格式发到下面。
BMP文件被分成4个部分:位图文件头(Bitmap File Header)、位图信息(BitmapInfoHeader)、颜色表(Color Map)和位图数据(即图像数据,Data Bits或Data Body)
第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。其定义如下:typedef struct tagBITMAPFILEHEADER{ WORD bfType; 位图文件类型,必须是0x424D,即字符串“BM” DWORD bfSize; 位图文件大小,包括这14个字节。 WORD bfReserved1; Windows保留字,暂不用。 WORD bfReserved2; Windows保留字,暂不用。 DWORD bfOffBits; 从文件头到实际的位图数据的偏移字节数} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
第2部分为位图信息头BITMAPINFOHEADER,也是一个结构体类型的数据结构,该结构的长度也是固定的,为40个字节(WORD为无符号16位整数,DWORD为无符号32位整数,LONG为32位整数)。其定义如下:typedef struct tagBITMAPINFOHEADER{ DWORD biSize; 本结构的长度,为40个字节。 LONG biWidth; 位图的宽度,以像素为单位。 LONG biHeight; 位图的高度,以像素为单位. WORD biPlanes; 目标设备的级别,必须是1。 WORD biBitCount 每个像素所占的位数(bit),其值必须为1(黑白图像)、4(16色图)8 (256色)、24(真彩色图),新的BMP格式支持32位色。 DWORD biCompression; 位图压缩类型,有效的值为BI_RGB(未经压缩)、BI_RLE8、BI_RLE4、 BI_BITFILEDS(均为Windows定义常量)。这里只讨论未经压缩的情况, 即biCompression=BI_RGB。 DWORD biSizeImage; 实际的位图数据占用的字节数 LONG biXPelsPerMeter; 指定目标设备的水平分辨率,单位是像素/米。 LONG biYPelsPerMeter; 指定目标设备的垂直分辨率,单位是像素/米。 DWORD biClrUsed; 位图实际用到的颜色数,如果该值为零则用到的颜色数为2的biBitCount次幂。 DWORD biClrImportant; 位图显示过程中重要的颜色数,如果该值为零则认为所有的颜色都是重要的} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
第3部分为颜色表。颜色表实际上是一个RGBQUAD结构的数组,数组的长度由biClrUsed指定(如果该值为零,则由biBitCount指定,即2的biBitCount次幂个元素)。RGBQUAD结构是一个结构体类型,占4个字节,其定义如下:typedef struct tagRGBQUAD{ BYTE rgbBlu
您可能关注的文档
- 新·2016造价工程师建设工程技术与计量(土建)模拟试题.doc
- 新·2016中国(3月份)数字标牌展-2016中国3月数字标牌展.doc
- 新·2017骄子之路第2章 第2节力的合成与分解.ppt
- 新·2017年04月江苏自考课程安排(官方版).doc
- 新·2017年衡水注册会计师考试《会计》之合并财务报表试题.doc
- 新·2017年会计证《会计基础》考试大纲(上).doc
- 新·2017年南昌大学心理学考研专业目录.doc
- 新·2017年上海大学学术型硕士研究生初试科目及参考书目.doc
- 新·2017年铜陵注册会计考试《会计》第十二章复习练习题.doc
- 新·2017年浙江师范大学初试科目考试大纲-906综合化学.doc
文档评论(0)