- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多媒体实验五
实验题目: 1、BMP图像文件的操作,编写C++程序,可以将一个标准24bit真彩色BMP文件中三基色图像提取出来存成独立的8bit灰度图像(BMP) 2、JPG算法:自写算法将BMP转换为JPG,再将jpg转化为bmp,比较前后两个bmp得质量差别,在不同的量化参数(50%压缩,75%压缩,95%压缩)下对比效果,包括:jpg压缩后的大小、图像质量、压缩时间 一、BMP的数据结构 1:BMP文件组成 BMP文件由四部分组成 文件头、 位图信息头、 颜色信息 图形数据。 2:BMP文件头(14字节) BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 typedef struct tagBITMAPFILEHEADER { WORDbf Type; // 位图文件的类型,必须为BMP(0-1字节) DWORD bfSize; // 位图文件的大小,以字节为单位(2-5字节) WORD bfReserved1; // 位图文件保留字,必须为0(6-7字节) WORD bfReserved2; // 位图文件保留字,必须为0(8-9字节) DWORD bfOffBits; // 位图数据的起始位置,以相对于位图(10-13字节) // 文件头的偏移量表示,以字节为单位 } BITMAPFILEHEADER; 3:位图信息头(40字节) BMP位图信息头数据用于说明位图的尺寸等信息。 4:颜色表 颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下: 颜色表中RGBQUAD结构数据的个数有biBitCount来确定: 当biBitCount=1,4,8时,分别有2,16,256个表项; 当biBitCount=24时,没有颜色表项。 位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下: typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; // 位图信息头 RGBQUAD bmiColors[1]; // 颜色表 } BITMAPINFO; 5:位图数据 位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数: 当biBitCount=1时,8个像素占1个字节; 当biBitCount=4时,2个像素占1个字节; 当biBitCount=8时,1个像素占1个字节; 当biBitCount=24时,1个像素占3个字节; Windows规定一个扫描行所占的字节数必须是 4的倍数(即以long为单位),不足的以0填充, biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) ~31) / 8) * bi.biHeight; 如某BMP文件开头: 4D42 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。 图像文件头 1)1:(这里的数字代表的是字,即两个字节,下同)图像文件头。0x4D42=’BM’,表示是Windows支持的BMP格式。 2)2-3:整个文件大小。4690 0000,=36934。 3)4-5:保留,必须设置为0。 4)6-7:从文件开始到位图数据之间的偏移量。4600 0000,=70,上面的文件头就是35字=70字节。 位图信息头 5)8-9:位图图信息头长度。 6)10-11:位图宽度,以像素为单位。8000 0000,=128。 7)12-13:位图高度,以像素为单位。9000 0000,=144。 8)14:位图的位面数,该值总是1。0100,为0001h=1。 9)15:每个像素的位数。有1(单色),4(16色),8(25
文档评论(0)