3

JPG 文件可以通过 FF FE 标记包含文本注释。我对此有几个问题:

  1. 如何指定评论的长度?如果注释在文件末尾,是否可以根本不指定长度?

  2. 是否可以有一个有效的 jpg 文件而没有仅包含评论的图像?这样的文件在二进制文件中会是什么样子?我假设它会是:

FF D8 - SOI:图像开始(注意后面没有帧数据)
FF D9 - EOI:图像结束
FF FE - COM:文本注释
(二进制) - (文本)
4

2 回答 2

5

JPEG 元数据存储在标签结构中,如下所示:

0xFF - 标签引入
者 0xXX - 标签值
0xXX 0xXX - 大端顺序的标签长度​​,包括长度(2)
<标签数据(长度-2字节)>

这种结构要求每个标签最多可以包含 65534 字节的元数据。对于较大的结构,真实的长度值存储在标签数据中,并且多个标签包含整个结构。

注释标签的示例。它包括一个零终止符,但这不是必需的。

FF FE 00 08 48 45 4C 4C 4F 00 - “你好”

于 2013-07-04T22:57:17.583 回答
2
  1. 大多数 JPEG 段包含一个 2 字节标记(0xFFFE在 COM 的情况下),然后是段长度(2 个字节)。有关更多详细信息,请参阅JPEG 语法和结构(维基百科)。您必须指定 COM 标记的长度字段。

  2. 只有表格(只有 DHT 和 DQT 段)JPEG 是有效的,没有图像数据。我不认为没有表格或图像数据是有效的,但至少你不需要图像数据。不确定它有多大用处,或者大多数 JPEG 软件会如何解释它......

    仅 JPEG 表的用例是将其与“缩写流”一起使用(JPEG 仅具有图像数据,没有表),以在多个图像之间共享公用表。

于 2013-07-04T16:00:37.490 回答