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

时间:2011-05-23 09:10:40

标签: metadata byte jpeg bytecode-manipulation iptc

我有兴趣在字节级别手动将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#中工作,但这是关于字节操作的问题所以我猜语言并不重要。

1 个答案:

答案 0 :(得分:2)

由于没有人回答我会解释我做了什么。

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

广告2。 在字节级手动IPTC操作期间,如果您意外删除或覆盖现有字节,可能会轻易损坏文件,特别是如果它们是标记(某些JPEG文件部分的标题)。

ad 3.必须找到并增加App13和适当的8BIM和IPTC标记以及新元数据字段的长度(内容大小+ 5字节用于IPTC标头)。因此,例如要添加新字段#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个字节将被视为字段内容=您添加的字。

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