BMP格式解析

BMP图像的格式很简单。
按照顺序为:位图文件头->位图信息头->调色板信息->颜色信息。
位图文件结构头:
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
位图信息头结构为:
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 位图信息头大小 为40
LONG biWidth; // 像素上的位图宽度
LONG biHeight; // 像素上的位图高度
WORD biPlanes;
WORD biBitCount; // 多少位表示一个像素颜色
DWORD biCompression;
DWORD biSizeImage; // 位图中描述像素颜色的数据的大小,这个是以4个字节为单位的,不足是0补
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed; // 多少个颜色使用了
DWORD biClrImportant;// 多少个颜色是重要的
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;
位图信息按照位图的色的不同而不同,例如24位时,颜色信息中,三个字节表示的是一个位图像素点的RGB值。


完全可以解析BMP文件中的格式来获得像素点的值。

比如。你可以得到几个矩形范围类的像素点的值。然后重新根据这个矩形范围类的像素值重新构造一个BMP文件格式。
重新写入bmp文件头,bmp信息头,bmp调色板,bmp像素信息(这个信息是你要获取的区域内的像素信息,可以直接获取原图中的像素的值获得)。bmp文件头,bmp信息头可以根据实际情况更改,比如说,位图的宽度,位图的高度,位图像素信息的大小,这些都可以直接计算出来。

注意:bmp是按照图像从下向上,按行扫描得到的图像的,而且为像素信息中,如果一行中描述该行的所有像素信息的字节数不是4的整数倍时,要用0补齐,凑出4的整数倍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值