5

IPTCフィールドをバイトレベルでJPGファイルに手動で挿入することに興味があります。JPEGファイルには、適切なサイズのマーカーを持つ複数のメタデータセグメントがあります。IPTCのセグメントコンテナは次のとおりです。

App13-で始まるFF ED XX XX ..

8BIMIPTCテキストメタデータ-で始まる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#で作業していますが、バイトの操作に関する質問なので、言語は関係ないと思います。

4

1 に答える 1

2

誰も返事をしなかったので、私がしたことを説明します。

ad 1.上記のファイルマーカーは、IPTCを操作するのに十分です。

ad 2.バイトレベルでの手動IPTC操作中に、既存のバイトを誤って削除または上書きした場合、特にマーカー(一部のJPEGファイル部分のヘッダー)の場合、ファイルが簡単に損傷する可能性があります。

ad 3. App13と、新しいメタデータフィールドの長さ(コンテンツサイズ+ IPTCヘッダーの5バイト)を使用して適切な8BIMおよびIPTCマーカーを見つけて増やす必要があります。したがって、たとえば、新しいフィールド#09を追加するには、8BIM IPTCセグメント(38 42 49 4D 04 04 00 00 00 00 XX XX)を見つけて、新しいワードサイズでXXXXバイトを増やす必要があります。次に、ラッピングApp13セグメント(8BIMの前の最後のFF ED XX XXセグメントを検索)のサイズを増やし、最後に8BIMの最後(セグメントの長さのバイトのおかげで終わりがわかります)に、1C 02 090005のような新しいIPTCフィールドを追加します-長さ5のメタデータフィールド#09を追加します。次の5バイトは、フィールドコンテンツ=追加した単語と見なされます。

ええ、それは少し混沌としていますが、動作します:-)

于 2011-06-09T08:37:58.183 に答える