png、jpg/jpeg、bmp、gif等常见图形格式的标题大小是多少?

问题描述 投票:0回答:2

我在谷歌上搜索过。 我在这里找到了一些东西,http://paulbourke.net/dataformats/bmp/,但我无法理解标题的大小。

阅读一些网页时我感到困惑。 http://en.wikipedia.org/wiki/JPEG

任何人都可以提供所有这些格式的正确标题信息吗?

image graphics header
2个回答
21
投票

PNG 文件包含 8 字节标头

JPEG 文件(请参阅规范)包含 2 字节标头 (SOI),后跟一系列标记,一些标记后可以跟数据数组。每种类型的标记都有不同的标头格式。存储图像的字节遵循 SOF0 标记(10 字节长度)。然而,在 JPEG 标头和 SOF0 标记之间可以有其他段。

BMP 文件包含 14 字节标头

GIF 文件的标头中包含 至少 14 个字节


0
投票

我不知道 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 图像!

如果您想了解更多详细信息,我很乐意效劳。

© www.soinside.com 2019 - 2024. All rights reserved.