预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

源程序如下:#include<math.h> #include<iomanip.h> #include<stdlib.h> #include<windows.h> #include<stdio.h> #include<stdlib.h> #include<iostream.h> #include<fstream.h> #defineff(x,y)pBmpBuf0[256*(y)+(x)] #definegg(x,y)pBmpBuf9[256*(y)+(x)] //--------------------------------------------------------------------------------------- unsignedchar*pBmpBuf;//读入图像数据的指针 intbmpWidth;//图像的宽 intbmpHeight;//图像的高 RGBQUAD*pColorTable;//颜色表指针 intbiBitCount;//图像类型,每像素位数 //------------------------------------------------------------------------------------------- //读图像的位图数据、宽、高、颜色表及每像素位数等数据进内存,存放在相应的全局变量中 boolreadBmp(char*bmpName) { FILE*fp=fopen(bmpName,"rb");//二进制读方式打开指定的图像文件 if(fp==0)return0; //跳过位图文件头结构BITMAPFILEHEADER fseek(fp,sizeof(BITMAPFILEHEADER),0); //定义位图信息头结构变量,读取位图信息头进内存,存放在变量head中 BITMAPINFOHEADERhead; fread(&head,sizeof(BITMAPINFOHEADER),1,fp);//获取图像宽、高、每像素所占位数等信息 bmpWidth=head.biWidth; bmpHeight=head.biHeight; biBitCount=head.biBitCount;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数) intlineByte=(bmpWidth*biBitCount/8+3)/4*4;//灰度图像有颜色表,且颜色表表项为256 if(biBitCount==8) { //申请颜色表所需要的空间,读颜色表进内存 pColorTable=newRGBQUAD[256]; fread(pColorTable,sizeof(RGBQUAD),256,fp); } //申请位图数据所需要的空间,读位图数据进内存 pBmpBuf=newunsignedchar[lineByte*bmpHeight]; fread(pBmpBuf,1,lineByte*bmpHeight,fp); fclose(fp);//关闭文件 return1;//读取文件成功 } //----------------------------------------------------------------------------------------- //给定一个图像位图数据、宽、高、颜色表指针及每像素所占的位数等信息,将其写到指定文件中 boolsaveBmp(char*bmpName,unsignedchar*imgBuf,intwidth,intheight, intbiBitCount,RGBQUAD*pColorTable) { //如果位图数据指针为0,则没有数据传入,函数返回 if(!imgBuf) 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; //申请位图文件头结构变量,填写文件头信息 BITMAPFILEHEADERfileHead; fileHead.bfType=0x4D42;//bmp类型 //bfSize是图像文件4个组成部分之和 fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BI