我在谷歌上搜索过。 我在这里找到了一些东西,http://paulbourke.net/dataformats/bmp/,但我无法理解标题的大小。
阅读一些网页时我感到困惑。 http://en.wikipedia.org/wiki/JPEG
任何人都可以提供所有这些格式的正确标题信息吗?
我不知道 jpg/jpeg、gif 或其他图像,但我知道 BMP 图像。
文件头大小为14字节。前两个字节是标头字段,由两个
char
组成(通常是“B”,然后是“M”)。然后是 BMP 文件的总大小(作为 4 字节整数),接下来的两个字段是保留的,都是 2 字节(因此都可以设置为 0),最后,文件头的最后部分是像素数组开始的偏移量的 4 字节整数。
文件头之后是信息头。有多种不同的使用方式,但最常见的是
BITMAPINFOHEADER
。
该标头包含:标头大小(以字节为单位) - 即 40(4 字节),然后是像素数组的宽度(以像素为单位)(4 字节),然后是像素数组的高度(以像素为单位)(4 字节),然后是颜色窗格的数量 - 通常为 1(2 字节),然后每像素位数 - 通常为 24(2 字节),最后是另外 6 个字段,每个字段 4 字节大,可以设置为 0(不会详细介绍以保持答案很短)。
此后您可以开始编写像素数组。
如果选择每像素 24 位,那么每个像素将占用 3 个字节的数据,每个字节代表一个
unsigned char
(从 0 到 255)对应于红色、绿色或蓝色。 BMP 图像使用 BGR 约定,因此请务必按该顺序写入颜色字节。
最后,您需要确保每行以 4 字节边界终止。换句话说,如果像素数组的一行中的字节数不是 4 的倍数,则必须添加相应数量的“填充”字节(通常只是零) - 1、2 或 3 个字节.
这样,您就得到了一张 BMP 图像!
如果您想了解更多详细信息,我很乐意效劳。