0

これは、通常のアプローチから少し逆になります。

以前、メタデータの操作にExifToolを使用しましたが、永続的なものにする前に、可能な限り最高のメタデータバックアップを保持したいと考えています。

私がやりたいのは、JPEGファイルの圧縮された画像部分を削除して、他のすべてをそのままにすることです。これは、ファイルの最初か最後かに関係なく、EXIF、Makernotes、IPTC、XMPなどをバックアップします。

これまでに試したのは、元のJPEGのコピーからすべてのメタデータを取り除き、元のJPEGから取り出されるバイトの基礎として使用することです。生データを見ると、削除されたコピーが元のコピーに隣接しているようには見えません。削除されたバージョンには、まだいくつかのヘッダー情報が残っている可能性があります。よくわかりません。それをするのは良い方法ではないと思います。

圧縮されたJPEG画像データの開始位置と終了位置を完全に教えてくれるマーカーはありますか?JPEGファイルには画像の開始と終了をマークする0xFFD8と0xFFD9があることを理解していますが、メタデータが実際にはこれらのマーカーの間にあることがわかりました。

私はC#を使用しています。

ありがとうございました。

4

2 に答える 2

0

これを適切に行うには、JPEG/JFIF 形式を完全に解析し、不要なものを破棄する必要があります。メタデータはすべて、JPEG EOI の後に APP セグメントまたはトレーラーに保持されるため、おそらく他のすべてを破棄することになります。JPEG/JFIF の完全な解析は簡単ではありません。これについては、JPEF/JFIF 仕様を参照してください。

于 2010-11-19T12:54:23.550 に答える
0

MetadataExtractorJpegSegmentReaderライブラリのクラスを使用して、JPEG 画像から特定のセグメントを取得できます。

于 2015-08-12T11:53:25.050 に答える