用c++读取、修改和保存位图

用c++读取、修改和保存位图

ID:6611927

大小:40.00 KB

页数:6页

时间:2018-01-20

用c++读取、修改和保存位图_第1页
用c++读取、修改和保存位图_第2页
用c++读取、修改和保存位图_第3页
用c++读取、修改和保存位图_第4页
用c++读取、修改和保存位图_第5页
资源描述:

《用c++读取、修改和保存位图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用C++读取、修改和保存位图   该示例用C++读取、修改位图,通过它我们可以了解位图的文件结构,对图像处理的理解很有帮助。下面是全部的源码:  #include#include#include/***********************变量的定义***********************************/unsignedchar*pBmpBuf; //读入图像数据的指针intbmpWidth;  //图像的宽度intbmpHeight;  //

2、图像的高度RGBQUAD*pColorTable;  //颜色表指针intbiBitCount;  //图像类型,像素位数/****************************************************************************读取图像的位图数据、宽度、高度、颜色表及像素位数,并存放在全局变量中*****************************************************************************/boolreadBmp(ch

3、ar*bmpName){ FILE*fp=fopen(bmpName,"rb");         //以二进制读的方式打开指定的图像文件 if(fp==0)return0; //跳过位图文件头 fseek(fp,sizeof(BITMAPFILEHEADER),0); //定义位图信息头结构变量,读取位图信息头进内存,存放在变量infoHead中 BITMAPINFOHEADERinfoHead; fread(&infoHead,sizeof(BITMAPINFOHEADER),1,fp); bmpWidth=infoH

4、ead.biWidth; bmpHeight=infoHead.biHeight; biBitCount=infoHead.biBitCount; //定义变量,计算图像每行像素所占的字节数(必须为4的倍数) intlineByte=(bmpWidth*biBitCount/8+3)/4*4; //灰度图像有颜色表,且颜色表为256 if(biBitCount==8) {  //申请颜色表所需要的空间,读颜色表进内存  pColorTable=newRGBQUAD[256];  fread(pColorTable,size

5、of(RGBQUAD),256,fp); } //申请位图数据所需要的空间,读位图数据进内存 pBmpBuf=newunsignedchar[lineByte*bmpHeight]; fread(pBmpBuf,1,lineByte*bmpHeight,fp); fclose(fp); return1;}/***************************************************************************************************           

6、                         将指定数据写到文件中***************************************************************************************************/boolsaveBmp(char*bmpName,unsignedchar*imgBuf,intwidth,intheight,   intbiBitCount,RGBQUAD*pColorTable){ //如果位图数据指针为0,则没有数据输入 if(!i

7、mgBuf)  return0; //颜色表大小,以字节为单位:灰度图像为1024;彩色图像为0 intcolorTablesize=0; if(biBitCount==8)  colorTablesize=1024; //待存储图像数据每行字节数为4的倍数 intlineByte=(width*biBitCount/8+3)/4*4; //以二进制写的方式打开文件 FILE*fp=fopen(bmpName,"wb"); if(fp==0)return0; //申请位图文件头结构变量,填写文件头信息 BITMAPFILE

8、HEADERfileHead; fileHead.bfType=0x4D42;  //bmp类型  //bfSize是图像文件4个部分之和 fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)  +colorTablesize

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

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

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