求处理图片bmp文件的程序代码(C语言)

1)读取图片的宽度、高度、每个像素所需的位数、水平分辨率、垂直分辨率2)显示bmp文件关键是我不知道怎么读取这种文件,可以给点思路吗?最好可以给我举个相关简单点的程序例子... 1)读取图片的宽度、高度、每个像素所需的位数、水平分辨率、垂直分辨率
2)显示bmp文件
关键是我不知道怎么读取这种文件,可以给点思路吗?

最好可以给我举个相关简单点的程序例子
谢谢啦
展开
 我来答
laobaitu0322
推荐于2016-03-25 · TA获得超过744个赞
知道小有建树答主
回答量:900
采纳率:33%
帮助的人:641万
展开全部

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)来读取数据部分

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式