位图rgb到gray

位图rgb到gray

ID:38188640

大小:251.50 KB

页数:6页

时间:2019-05-25

位图rgb到gray_第1页
位图rgb到gray_第2页
位图rgb到gray_第3页
位图rgb到gray_第4页
位图rgb到gray_第5页
资源描述:

《位图rgb到gray》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、*打开和保存bmp文件,这里使用自定义数据结构Bitmap,相关函数定义如下:bmp.h:intCreateBitmap(Bitmap*bmp,intwidth,intheight,intbitCount);voidReleaseBitmap(Bitmap*bmp);intCheckPath(char*path);intReadBitmap(char*path,Bitmap*bmp);intSaveBitmap(char*path,Bitmap*bmp);*图像格式转换basicprocess.h:intRGB2Gray(Bitmap*src,Bitmap*dst);intG

2、ray2RGB(Bitmap*src,Bitmap*dst);6**-------------------------------------FileInfo------------------------------------------------------29*位图文件结构及基本函数定义打开和保存bmp文件31typedefunsignedshortWORD;32typedefunsignedlongDWORD;33typedeflongLONG;34typedefunsignedcharBYTE;*位图文件头结构14字节*/37typedefstructtagBI

3、TMAPFILEHEADER{38WORDbfType;DWORDbfSize;WORDbfReserved1;WORDbfReserved2;DWORDbfOffBits;43}BITMAPFILEHEADER;45/*位图信息头结构40字节*/46typedefstructtagBITMAPINFOHEADER{47DWORDbiSize;//结构长度40BLONGbiWidth;LONGbiHeight;WORDbiPlanes;//151WORDbiBitCount;//表示颜色要用到的位数52DWORDbiCompression;//压缩格式53DWORDbiSiz

4、eImage;//位图占用字节数=biWidth'(4的整倍数)*biHeight54LONGbiXPelsPerMeter;//水平分辨率55LONGbiYPelsPerMeter;//垂直分辨率56DWORDbiClrUsed;//本图像用到的颜色数DWORDbiClrImportant;//本图像的重要颜色数58}BITMAPINFOHEADER;60/*调色板4字节*/61typedefstructtagRGBQUAD{62BYTErgbBlue;BYTErgbGreen;BYTErgbRed;BYTErgbReserved;}RGBQUAD;68/*定义图像信息*/

5、69typedefstructtagBITMAPINFO{70BITMAPINFOHEADERbmiHeader;71RGBQUADbmiColors[1];72}BITMAPINFO;74/*定义位图图像*/75typedefstruct_Bitmap76{77BITMAPFILEHEADERbmfh;BITMAPINFOHEADERbmih;79intwidth;intheight;intbitCount;//8或者24intimageSize;//图像数据大小(imageSize=height*widthStep)字节83BYTE*imageData;//排列的图像数据

6、84intwidthStep;//排列的图像行大小85}Bitmap;88*位图创建函数创建一个Bitmap结构,并为图像数据分配空间90*使用方法:91*Bitmap*bmp=(Bitmap*)malloc(sizeof(Bitmap));92*ret=CreateBitmap(bmp,50,50,3);94intCreateBitmap(Bitmap*bmp,intwidth,intheight,intbitCount){bmp->width=width;bmp->height=height;bmp->bmih.biWidth=width;bmp->bmih.biHeig

7、ht=height;bmp->widthStep=(int)((width*bitCount+31)/32)*4;//计算排列的宽度bmp->imageSize=bmp->height*bmp->widthStep*sizeof(BYTE);//计算排列的图像大小if(bitCount==8){bmp->bitCount=8;bmp->bmfh.bfType=0x4d42;//注意是4d42等等}elseif(bitCount==24){处理}else{printf("Error(CreateBitma

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

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

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