C++实现BMP转RAW
用C++做的第一个项目,把BMP格式图片转换成RAW格式。
要实现该功能,需要分成以下几个步骤:1、搞明白BMP格式和RAW格式图片的数据存储方式;2、用C++实现算法转换,并用MFC做出一个小工具;
一、解析BMP格式
关于BMP格式网上有大把的资料,我也是参考了许多相关文章。以下是部分文章链接
https://blog.youkuaiyun.com/imxiangzi/article/details/81113353
bmp图片的数据由文件头、信息头、调色板、位图数据4个部分构成。
文件头和信息头包含了该bmp图片的文件信息;由54个字节构成;
调色板包含了1024个字节数据,但只是在16位的bmp图片是才有该数据(不知道8位bmp是否也含有1024个字节),而对于24位和32位的bmp而言,没有该信息。我做该项目都是24位的bmp图片,所以在下面的代码中没有包含该数据;
位图数据:也就是一个像素所表示的数据,对于24位而言,一个像素点由24个比特位,也就是3个字节表示,分别对应RGB。一张图片的第一个像素点在坐下角,然后往右一个个存取,最后一个在右上角。而且一个像素的第一个字节数据表示的是R,第二个是G,第三个是B。
二、解析RAW格式
1、RAW是一种原始的数据格式