求处理图片bmp文件的程序代码(C语言)
1)读取图片的宽度、高度、每个像素所需的位数、水平分辨率、垂直分辨率2)显示bmp文件关键是我不知道怎么读取这种文件,可以给点思路吗?最好可以给我举个相关简单点的程序例子...
1)读取图片的宽度、高度、每个像素所需的位数、水平分辨率、垂直分辨率
2)显示bmp文件
关键是我不知道怎么读取这种文件,可以给点思路吗?
最好可以给我举个相关简单点的程序例子
谢谢啦 展开
2)显示bmp文件
关键是我不知道怎么读取这种文件,可以给点思路吗?
最好可以给我举个相关简单点的程序例子
谢谢啦 展开
1个回答
展开全部
bmp文件由文件头,位图信息头,颜色表,和数据部组成
文件头:
typedef struct tagBITMAPFILEHEADER
{
WORD bfType;//位图文件的类型,必须为BM(1-2字节)
DWORD bfSize;//位图文件的大小,以字节为单位(3-6字节,低位在前)
WORD bfReserved1;//位图文件保留字,必须为0(7-8字节)
WORD bfReserved2;//位图文件保留字,必须为0(9-10字节)
DWORD bfOffBits;//位图数据的起始位置,以相对于位图(11-14字节,低位在前)
//文件头的偏移量表示,以字节为单位
}BITMAPFILEHEADER;
位图信息头:
typedefstructtagBITMAPINFOHEADER{
DWORDbiSize;//本结构所占用字节数(15-18字节)
LONGbiWidth;//位图的宽度,以像素为单位(19-22字节)
LONGbiHeight;//位图的高度,以像素为单位(23-26字节)
WORDbiPlanes;//目标设备的级别,必须为1(27-28字节)
WORDbiBitCount;//每个像素所需的位数,必须是1(双色),(29-30字节)
//4(16色),8(256色)16(高彩色)或24(真彩色)之一
DWORDbiCompression;//位图压缩类型,必须是0(不压缩),(31-34字节)
//1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
DWORDbiSizeImage;//位图的大小(其中包含了为了补齐行数是4的倍数而添加的空字节),以字节为单位(35-38字节)
LONGbiXPelsPerMeter;//位图水平分辨率,每米像素数(39-42字节)
LONGbiYPelsPerMeter;//位图垂直分辨率,每米像素数(43-46字节)
DWORDbiClrUsed;//位图实际使用的颜色表中的颜色数(47-50字节)
DWORDbiClrImportant;//位图显示过程中重要的颜色数(51-54字节)
}BITMAPINFOHEADER;
打开文件读出这些信息,然后用一个RGB的构造体二维数组(height*width)来读取数据部分
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询