jpg / jpeg(およびその他の画像形式)のデータ部分のみのチェックサムを取得するために使用できるend-of-exif / end-of-xmp / end-of-iptc / start-of-dataマーカーはありますか? ?
6 に答える
この質問はこれに関連していると思います画像のコア画像データ(メタデータを除く)のみのハッシュを計算します、https://stackoverflow.com/a/10075170/890106は、コードを探している場合の答えの要素を提供します。
ただし、すべてのJPGバリアントで機能するとは限りません。一部のバリアントは複数の画像を埋め込むことができます(MPF / CIPAマルチ画像形式、詳細についてはhttp://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/を参照してください)。 MPF.html)、まだいくつかのメタデータがあるかもしれません。また、一部のソフトウェアは、ファイルの最後に-[0-9A-F] +-の形式でUIDを配置しているため、読み取るべきではありません。おそらくピクセルをチェックサムする場合の最も安全な解決策(ただし、向き、カラープロファイルなどの影響を与えることはできます)。
ピクセルデータのみのハッシュサムを取得する簡単な方法の1つは、JPEGを32ビットBMPまたはPNGに変換し、そこからハッシュサムを計算することです。これにより、関連するすべての情報がJPEGから削除され、同じピクセルデータにつながる異なるエンコーディングのJPEGと一致することもあります。もちろん、結果のBMPのメモリ内ピクセルデータを直接使用することもできます(つまり、Windowsには、サポートされている任意の画像タイプから取得するためのAPI関数がいくつかあります)。
はい、jpegとexifには、他の人にはわかりません。
私が持っているJPEG仕様はJFIF(JPEG File Interchange Format)と呼ばれ、ISO10918-1のAnnexBに由来し、すべてのISO仕様と同様に、仕様をデータ構造に変換する方法を理解するために注意深く読む必要があります。これはフォローするのがはるかに簡単だと思います
EXIF形式は、TIFF形式とほとんど同じように解析されます。各チャンクにはタイプとサイズがあるため、画像データチャンクに到達するまでチャンクを歩くだけです。画像データへのポインタがあります(実際にはストリップへのポインタですが、ファイルの最後までの画像データの最初のストリップの後のすべてが画像データであるとみなすことができると確信しています。
exif形式には独自のWebサイトがあります
さまざまな画像形式でこれを実行する必要があるため、汎用の画像解凍ライブラリを使用して、非圧縮データに対してチェックサムを実行する必要があります。これにより、ディスク上で異なる方法でエンコードされている場合でも、同一の画像を照合できます。
JPEGに制限したい場合は、SOIとEOIの間のデータをチェックサムできます。この答えは、あなたが必要とすることをするためにわずかに適応させることができます。
MediaTagsは、JPEG、MP3、M4Aなどのチェックサムをサポートしています