资源描述:
《BMP读取图像信息》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#pragmapack(2)/*定义WORD为两个字节的类型*/typedefunsignedshortWORD;/*定义DWORD为e四个字节的类型*/typedefunsignedlongDWORD;/*位图文件头*/typedefstructBMP_FILE_HEADER{WORDbType;/*文件标识符*/DWORDbSize;/*文件的大小*/WORDbReserved1;/*保留值,必须设置为0*/WORDbReserved2;/*保留值,必须设置为0*/DWORDbOffset;/
2、*文件头的最后到图像数据位开始的偏移量*/}BMPFILEHEADER;/*位图信息头*/typedefstructBMP_INFO{DWORDbInfoSize;/*信息头的大小*/DWORDbWidth;/*图像的宽度*/DWORDbHeight;/*图像的高度*/WORDbPlanes;/*图像的位面数*/WORDbBitCount;/*每个像素的位数*/DWORDbCompression;/*压缩类型*/DWORDbmpImageSize;/*图像的大小,以字节为单位*/DWORDbXPelsPerMeter;/*水平分辨率*/DWORDbYPelsPerM
3、eter;/*垂直分辨率*/DWORDbClrUsed;/*使用的色彩数*/DWORDbClrImportant;/*重要的颜色数*/}BMPINF;/*彩色表*/typedefstructRGB_QUAD{WORDrgbBlue;/*蓝色强度*/WORDrgbGreen;/*绿色强度*/WORDrgbRed;/*红色强度*/WORDrgbReversed;/*保留值*/}RGBQUAD;intmain(){FILE*fp;BMPFILEHEADERfileHeader;BMPINFinfoHeader;longoffset,bmpImageSize,width,h
4、eight,bytesPerPixel,size,bitCount;//inti,j;//unsignedchar**p;WORDc;if((fp=fopen("5.bmp","rb"))==NULL){printf("Cann'topenthefile!");exit(0);}fseek(fp,0,0);fread(&fileHeader,sizeof(fileHeader),1,fp);fread(&infoHeader,sizeof(infoHeader),1,fp);//计算并输出位图数据的偏移量,图像的大小,宽度和高度,每个像素点所占的字节size=f
5、ileHeader.bSize;offset=fileHeader.bOffset;bmpImageSize=infoHeader.bmpImageSize;width=infoHeader.bWidth;height=infoHeader.bHeight;bitCount=infoHeader.bBitCount;bytesPerPixel=infoHeader.bBitCount/8;printf("%d%d%d%d%d%d",size,offset,bmpImageSize,width,height,bitCount,bytesPerPixel);//输出
6、每个像素点所占字节中的内容c=fgetc(fp);while(!feof(fp)){printf("%x",c);c=fgetc(fp);}printf("");fclose(fp);return0;}