位图与视频的数据结构与操作

位图与视频的数据结构与操作

ID:44326325

大小:1.32 MB

页数:13页

时间:2019-10-20

位图与视频的数据结构与操作_第1页
位图与视频的数据结构与操作_第2页
位图与视频的数据结构与操作_第3页
位图与视频的数据结构与操作_第4页
位图与视频的数据结构与操作_第5页
资源描述:

《位图与视频的数据结构与操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字视频技术---位图与视频的数据结构与操作数字视频技术颜色表与调色板颜色表就是常说的调色板。计算完全利用(R,G,B)组合来存储一个800×600的位图所需要的空间为:800×600×3=1440000(字节)=1.37M(字节)调色板的功能在于缓解位图文件存储空间过大的问题。假设一个位图为16色,其像素总数为800×600。我们只需要用4个bit就可以存储这个位图的每个像素在16种颜色中所处的等级,然后调色板提供了这16种等级对应的(R,G,B)值,这样,存储这个16色位图只需要:800×600×4/8=24000

2、0(字节)=0.22M(字节)额外的存储R,G,B表的开销(即调色板Palette,也称为颜色查找表LUT)仅仅为16×3=48字节。   存储空间被大为减少!颜色表与调色板调色板用于在索引图像中减小图像文件体积,条件是像素数目较多,而颜色数目相对较少思考:1)描述在一个200*200像素大小,颜色数为16的RGB(每像素为3个字节)彩色图像中,采用调色板来存储的过程,并说明使用调色板的好处。2)为什么一般上在24位真彩色图像中不使用颜色查找表技术?设备无关位图设备相关位图DDB(Device-Dependent-B

3、itmap)DDB不具有自己的调色板信息,他的颜色模式必须与输出设备相一致。如:在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中。设备无关位图DIB(Device-Independent-Bitmap)DIB具有自己的调色板信息,他可以不依赖系统的调色板。由于他不依赖于设备,所以通常用它来保存文件,如.bmp格式的文件就是DIB.BMP图像文件数据结构位图文件头结构位图文件信息头中各个段的地址及其内

4、容位图操作举例–读位图文件/**************************************** ******************************* *函数名称:* readBmp() * *函数参数:* char*bmpName-文件名字及路径* *返回值:*0为失败,1为成功* *说明:给定一个图像文件名及其路径,读图像的位图数据、宽、高、颜色表及每像素*位数等数据进内存,存放在相应的全局变量中**************************************** ********

5、***********************/ boolreadBmp(char*bmpName) { //二进制读方式打开指定的图像文件FILE*fp=fopen(bmpName,"rb"); if(fp==0)return0; //跳过位图文件头结构BITMAPFILEHEADER fseek(fp,sizeof(BITMAPFILEHEADER),0);//定义位图信息头结构变量,读取位图信息头进内存,存放在变量head中BITMAPINFOHEADERhead;  fread(&head,sizeof(B

6、ITMAPINFOHEADER),1,fp);//获取图像宽、高、每像素所占位数等信息bmpWidth=head.biWidth; bmpHeight=head.biHeight; biBitCount=head.biBitCount;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)intlineByte=(bmpWidth*biBitCount/8+3)/4*4;//灰度图像有颜色表,且颜色表表项为256 if(biBitCount==8){ //申请颜色表所需要的空间,读颜色表进内存pColorTabl

7、e=newRGBQUAD[256]; fread(pColorTable,sizeof(RGBQUAD),256,fp); }//申请位图数据所需要的空间,读位图数据进内存pBmpBuf=newunsignedchar[lineByte*bmpHeight]; fread(pBmpBuf,1,lineByte*bmpHeight,fp);//关闭文件fclose(fp);return1; }位图操作举例–存位图文件/***************************************** *函数名称:* sa

8、veBmp() * *函数参数:*   char*bmpName-文件名字及路径*   unsignedchar*imgBuf-待存盘的位图数据*   intwidth-以像素为单位待存盘位图的宽*   int height-以像素为单位待存盘位图高*   intbiBitCount-每像素所占位数*   RGBQUAD*pCol

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。