PNG、JPG/JPEG、BMP、GIF等常见图像格式的文件头大小是多少?

16
2个回答

21

PNG 文件包含 8字节头信息

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

BMP 文件包含 14字节的头信息

GIF 文件的头信息中至少包含了 14个字节


对于JPEG格式,2字节头和10字节头是什么意思? - shibly
JPEG 包含 2 字节的头部,后跟一系列帧。可以有许多帧,每个帧都有自己的头部。 - Pavel Strakhov
框架的目的是什么? - shibly
你从哪里得到的JPEG 2字节头? - shibly
这意味着,两个字节的标记。http://en.wikipedia.org/wiki/JPEG#Syntax_and_structure - shibly

0

我不知道jpg / jpeg,gif或其他格式的图片,但我了解BMP图像。

BMP文件头大小为14个字节。前两个字节是头字段,由两个char组成(通常是“B”,然后是“M”)。然后是BMP文件的总大小(作为4字节整数),接下来的两个字段都是保留字段,都是2个字节(因此可以都设置为0),最后,文件头的最后一部分是一个4字节整数,表示像素数组开始的偏移量。

文件头之后是信息头。有各种不同的信息头在使用中,但其中最常见的是BITMAPINFOHEADER

该标头包括:以字节为单位的标头大小-为40(4个字节),然后是像素阵列的宽度(4个字节),像素阵列的高度(4个字节),颜色平面数-通常为1(2个字节),每像素位数-通常为24(2个字节),最后还有6个字段,每个字段都是4个字节大,可以设置为0(为了保持答案简短,不会详细介绍)。

在此之后,您可以开始编写像素数组。

如果您选择每像素24位,则每个像素将占用3个字节的数据,每个字节表示一个无符号字符(从0到255),对应于红色、绿色或蓝色。BMP图像使用BGR约定,请确保按照该顺序编写颜色字节。
最后,您需要确保每行在4字节边界处终止。换句话说,如果像素数组中一行的字节数不是4的倍数,则必须添加相应数量的“填充”字节(通常只是零)-1、2或3个字节。
这样,您就拥有了一个BMP图像!
如果您需要更多详细信息,我很乐意提供。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接