一、BMP格式结构
BMP文件的数据按照从文件头开始的先后顺序分为四个部分:
◆ 位图文件头(bmp file header): 提供文件的格式、大小等信息
◆ 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息
◆ 调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表
◆ 位图数据(bitmap data):图像数据区
数据段名称 | 大小(byte) | 开始地址 | 结束地址 |
位图文件头(bitmap-file header)
|
14 | 0000h | 000Dh |
位图信息头(bitmap-information header)
|
40 | 000Eh | 0035h |
调色板(color table)
|
由biBitCount决定 | 0036h | 未知 |
图片点阵数据(bitmap data)
|
由图片大小和颜色定 | 未知 | 未知 |
参考博客:https://blog.csdn.net/testcs_dn/article/details/76719347
二、fread()
声明
下面是 fread() 函数的声明。
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
参数
- ptr -- 这是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
- size -- 这是要读取的每个元素的大小,以字节为单位。
- nmemb -- 这是元素的个数,每个元素的大小为 size 字节。
- stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。
返回值
成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。