JPEG文件大小标记,插入字节,IPTC元数据

yos*_*osh 5 byte jpeg iptc metadata bytecode-manipulation

我有兴趣在字节级别手动将IPTC字段注入JPG文件.JPEG文件具有多个具有可观大小标记的元数据段.IPTC的细分容器是:

App13 - 以.开头FF ED XX XX ..

8BIM IPTC文本元数据 - 以38 42 49 4D 04 04 00 00 00 00 XX XX ..

IPTC字段以1C 02 50 XX XX ..(0x50 = 80,IPTC字段#80)开始.

(XX XX = 2个字节的长度字,描述了所提到的段数据的大小).

JPEG文件和元数据中是否还有其他尺寸标记可供查找?在使用自定义IPTC字段附加元数据片段时是否必须增加其大小?

如何添加可用于已包含IPTC段的所有JPEG图像的自定义元数据字段(例如#225)?

在C#中工作,但这是关于字节操作的问题所以我猜语言并不重要.

yos*_*osh 2

既然没有人回复,我就解释一下我做了什么。

ad 1.我上面提到的文件标记足以操纵IPTC。

ad 2. 在字节级别的手动 IPTC 操作过程中,如果您意外删除或覆盖现有字节,则可能很容易损坏文件,特别是如果它们是标记(某些 JPEG 文件部分的标头)。

ad 3. 必须找到并增加 App13 以及适当的 8BIM 和 IPTC 标记以及新元数据字段的长度(内容大小 + IPTC 标头的 5 字节)。例如,要添加新字段 #09,您必须找到 8BIM IPTC 段 (38 42 49 4D 04 04 00 00 00 00 XX XX) 并使用新字大小增加 XX XX 字节。然后增加包装 App13 段(在 8BIM 之前找到最后一个 FF ED XX XX 段)大小,最后在 8BIM 末尾(由于段长度字节,您知道结束),您只需添加新的 IPTC 字段,如 1C 02 09 00 05 -添加长度为 5 的元数据字段 #09。以下 5 个字节将被视为字段内容 = 您添加的单词。

是的,有点混乱,但有效:-)