之前一直都准备写blog来记录自己的学习,但是无奈拖延症!现在总算有时间有精力了,希望大家能共同学习,互相讨论,如果文中有什么不妥之处,还请您指出,谢谢。
今天写的是一篇有关位图操作的文章,主要是实现了bmp的读写操作,为什么要做这个呢? 因为这是基础啊,c语言做图像处理都能搞定,还有什么语言搞不定的呢!当然核心的还是算法,这些在后面会慢慢扩充。
说到BMP文件结构读写操作,我们就不得不先了解bmp文件的结构,什么这头啊,那头啊,巴拉巴拉一大堆,下面给两个参考网站,极力推荐:
下面我也简单介绍一下bmp文件的结构,加深加深印象啦!
BMP文件的结构BMP图像文件被分成4个部分:位图文件头(Bitmap File Header)、位图信息头(Bitmap Info Header)、颜色表(Color Map)和位图数据(即图像数据,Data Bits或Data Body)。
第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。其定义如下:
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; //位图文件类型,必须是0x424D,即字符串“BM”.
DWORD bfSize; //位图文件大小,包括这14个字节。
WORD bfReserved1; //Windows保留字,暂不用
WORD bfReserved2;
DWORD bfOffBits; //从文件头到实际的位图数据的偏移字节数
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER,
*PBITMAPFILEHE