CodePanic! 雑談掲示板
Photoshopで作成したjpgのヘッダを無視ができないです。 - KUMA
2017/06/28 (Wed) 00:00:57
こんにちは
こちらのソフトで画像整理が非常に助かっております!
私は画像にタグをつけて整理をしているのですが
Photoshopで作成された画像にタグなどを付けると重複ファイルとして検出されなくなってしまうようです。
例えばPhotoshopで作成されたjpgファイルを3つ複製して
1つ目は何も手を付けず
2つ目にはwindowsの機能で評価を4に
3つ目にはwindowsの機能で評価を5に
上記の画像をHash→MD5→完全ハッシュ→JPEGヘッダを無視とした場合に
2つ目と3つ目の画像は重複ファイルとして検出できるのですが1つ目のファイルとは違うものとして判断されてしまうようです。
私はPhotoshopを持っていないないのでPixivサイトにある画像を検索していくつかテストしてみました。
Pixivサイト側に再変換されたファイル名末尾master1200付きの画像は正常に検出されました。
Re: Photoshopで作成したjpgのヘッダを無視ができないです。 - 管理人
2017/06/28 (Wed) 14:49:57
コメントありがとうございます。
Photoshopが手元にないのですが
Jpegヘッダの内容がJFIFでもEXIFでもなんでも
Jpegヘッダ全体のサイズを見て読み飛ばす実装になっているはずですが
体験版があるようですし
サンプル画像ファイルも探せばあると思うので
まずは問題を再現させてみます。
不具合であれば優先的に対応致します。
ご不便をおかけ致しますがもうしばらくお待ちください。
Re: Photoshopで作成したjpgのヘッダを無視ができないです。 - KUMA
2017/06/28 (Wed) 20:23:45
まだ手を付けていなかったらですが
https://blogs.adobe.com/creativestation/free-sample-for-studying-photoshop-cc-new-features
上記Adobeのサイトにある本社ビルサンプル画像がPhotoshopで作成された画像のようです。
この画像も評価などすると検出できなくなりました。
これからもFileManyを愛用させていただきます!
Re: Photoshopで作成したjpgのヘッダを無視ができないです。 - 管理人
2017/06/28 (Wed) 22:11:53
フォローありがとうございます。
バイナリエディタで中を見ながらデバッグしてみます。
Re: Photoshopで作成したjpgのヘッダを無視ができないです。 - 管理人
2017/07/01 (Sat) 21:26:10
デバッグしてみました。
Photoshopのサンプル画像そのままと
それをコピーしてWindowsのエクスプローラー上で評価などした場合と
2つのファイルを比較した結果
0xFFDBではじまる
Jpegの量子化テーブル定義のセクション内容が異なるように改変されるようです。
仮に、このセクションをスキップしてもその後のデータもまったく異なっているため
原理は不明ですがバイナリレベルで見ると別ファイルとして認識せざるを得ない状況です。
現状のFileManyでこれを検出したい場合は
検索の種類を『類似画像』として
特徴やヒストグラムの許容範囲をどちらも100%としてください。
これで重複ファイルとして検出できると思います。
エクスプローラーだけではないかもしれませんが
画像データの整形?をしているような印象を受けます。
それぞれのファイルは
オリジナル:682102 byte Offset:1007 byte ヘッダを除いたSize:681095 byte
評価した物:688539 byte Offset:7428 byte ヘッダを除いたSize:681111 byte
となります。
つまり、評価をして余計なヘッダ情報が付与されて7kbほどのヘッダ情報となっても
画像データそのものの領域のサイズの差は16byteしかないので
いい感じに情報が整理?されているような印象です。
データ構造はそのままでヘッダ情報だけ膨らめばいいんですが
このような挙動ですので、FileMany側はヘッダ情報を読み飛ばして
データ領域だけを比較した場合、一致と判断することは残念ながらできませんでした。
よろしくお願いいたします。
Re: Photoshopで作成したjpgのヘッダを無視ができないです。 - KUMA
2017/07/07 (Fri) 16:00:48
デバッグおつかれさまです。
詳しいところは分からないですが、なんとなく理解できました。
類似画像100%も併用することで対処できそうですね!ありがとうございます!