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

5

我对在字节级别手动向JPG文件注入IPTC字段很感兴趣。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字段的元数据段时,我需要增加它们的大小吗?

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

使用C#工作,但这是关于字节操作的问题,所以我想语言并不重要。


我不明白这个问题。 - onemasse
如果您了解JPEG元数据段的字节级构造,则应该清楚问题。请查看http://www.codeproject.com/KB/graphics/iptc.aspx。 - yosh
1
嗯,我对JPEG和EXIF都很熟悉。据我所知,EXIF、8BIM、IPTC或XMP都不是JPEG标准的一部分。因此,第一个句子对我来说没有意义。所以才产生了困惑。我现在明白你的问题了。你想知道是否还有其他长度字段需要调整。除非你的JPEG实际上是MPO格式的,否则我认为不需要。 - onemasse
@onemasse 好的,谢谢。我正在处理非常大的JPEG文件,其中包含所有上述内容,通常甚至存在不必要的重复。 - yosh
1个回答

2

由于没有人回复,我将解释我所做的事情。

附注1:我上面提到的文件标记足以操作IPTC。

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

附注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个字节将被视为字段内容=您添加的单词。

是的,这有点混乱,但有效。


嗨,Yosh!最近我问了一个关于JPG自定义元数据的问题,但没有得到答案。我很想像你建议的那样添加一个自定义字段,例如“湿度:4.5%”,但我对字节方面的处理不太确定 - 你能否详细解释一下你的解决方法,用了哪些命令/工具?非常感谢! - birgit
@birgit,你需要的更可能是XMP元数据。在这里,我只关注IPTC,它是封闭标准。这是一个很好的IPTC字段列表:http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/IPTC.html FotoWare Fotostation是一个非常好的工具,可以操纵图像中的元数据,但目前我正在使用自己的代码来提取它。 - yosh
很棒的回答。你可能会对回答这个问题感兴趣/有能力回答。 - crthompson

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