基于哈夫曼的图片压缩

基于哈夫曼的图片压缩

ID:32808611

大小:54.19 KB

页数:4页

时间:2019-02-15

基于哈夫曼的图片压缩_第1页
基于哈夫曼的图片压缩_第2页
基于哈夫曼的图片压缩_第3页
基于哈夫曼的图片压缩_第4页
资源描述:

《基于哈夫曼的图片压缩》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、^pragmaonce#inelude#inelude#includeusingnamespacestd;structBitmapFileHeader{WORDbmpHeader;//文件头“BM”DWORDfileSize;//文件大小,字节为单位WORDreservedWordl;//文件保留字1必为0WORDreservedWord2;//文件保留字2必为0DWORDoffSet;//位图数据起始位置};structBitmapFilelnfo{DWORDbmpInfoSi

2、ze;//即本结构所占的大小为28即4字节LONGbmpWidth;//位图的宽度LONGbmpHeight;//位图的高度WORDbmpPlanes;//目标设备的级别(必须为1)WORDbmpBitCount;//每个像素的尾数,必须为1(双色)4(16色)8(256色)24(真彩)DWORDbmpCompression;//必为0(BI_RGB未压缩)1(BI_RLEB)2(BI_RLE4)DWORDbmpSizelmage;//位图的大小单位为字节LONGbmpXpe1sPerMeter://水平分辨率每米像素数LONGbmpY

3、pelsPerMeter;//垂直分辨率DWORDbmpColorUsed;//位图显示所需颜色数DWORDbmpColorImportant;//重要的颜色数若为0则都重要};classBMPbase{publie:BMPbase(constchar*fileName);"BMPbase();private:boolfileSuccess;//判断文件是否打开成功的标志boolfileCompression;//判断文件是否被压缩boolbmpFi.1eflag;//判断是否为BMP文件boo1bmpBitRight;//判断文件位数

4、是否正确BitmapFileHeaderbmpHeader;//bmp文件头BitmapFilelnfoBmpPic;//bmp文件基本信息BYTE*picPix;//图片数据数组public:boolisReadFileSuccess();boolisBmpFi1e();BitmapFileHeadergetBmpHedader();//获取文件头BitmapFilelnfogetBmpInfoO;//获取信息结构体boolisBmpBitRight();//获取位图是否正确boolisFi1eCompression();//获取文件

5、是否被压缩BYTE*getPicPixO;//获取颜色数组intpixNum;};BMPbase.cpp#include"stdafx.h"^include"BMPbase.h"BMPbase::BMPbase(constchar*MleName){fileSuccess二true;//初始化文件为成功打开bmpF订eflag=true;//初始化文件为BMP文件bmpBitRight二true;//初始化文件位数为正确fileCompression=true;//初始化文件为未压缩ifstreampicReader(fileName,

6、ios::binary);if(!pieReader){fileSuccess=false;//文件读取失败}else{picReader.read((char*)&bmpHeader.bmpHeader,sizeof(WORD));if(bmplleader.bmpHeader!=0x4D42){bmpFileflag=false;//文件读取失败,类型不一致}else//开始读取文件信息{picReader.read((char*)&bmpHeader.fileSize,sizeof(DWORD));//读文件大小picReader

7、.read((char*)&bmpHeader.reservedWordl,sizeof(WORD));〃读取保留字picReader.read((char*)&bmpHeader.reservcdWord2,sizeof(WORD));//读取保留字/*if(bmpHeader.reservedWordl!=0x00

8、

9、bmpHeader.reservedWord2!=0x00)//判断文件保留字是否正确{fileSuccess=false;//文件读取失败}*/picReader.read((char*)&binpHeader.of

10、fSet,sizeof(DWORD));〃读取偏移量picReader.read((char*)&BmpPic.bmpTnfoSize,sizeof(DWORD));/*if(BmpPic.bmplnfoS

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

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

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