チェックサムを計算するのではなく、ハッシュを計算してください!
ハードディスク上の重複する画像を探す必要がある単純なアプリケーションを作成したことがあります。.JPG ファイルのみを検索しますが、すべてのファイルについて、最初の 1024 バイトのハッシュ値を計算し、画像の幅、高さ、サイズを追加して、"875234:640:480: 13286"、これを画像のキーとして使用します。結局のところ、このアルゴリズムでは偽の重複は見られませんでしたが、偽の重複の可能性はまだあります。ただし、このスキームでは、誰かが 1 バイトを追加したり、画像に非常に小さな調整を加えたりすると、複製が許可されます。
もう 1 つのトリックは、すべての画像のサイズと色数を減らすことです。すべての画像のサイズを 128x128 ピクセルに変更し、色数を 16 (4 ビット) に減らすと、それぞれ 8192 バイトの合理的な一意のパターンになります。このパターンでハッシュ値を計算し、ハッシュを主キーとして使用します。ヒットを取得しても、まだ誤検知がある可能性があるため、新しい画像のパターンをシステムに保存されているパターンと比較する必要があります。このパターン比較は、最初のハッシュ ソリューションが新しいイメージが一意であることを示している場合に使用できます。ただし、それは私自身のツールのためにまだ解決する必要があるものです. しかし、基本的には、画像のフィンガープリントを取得して比較するようなものです。
私の最初の解決策は、完全に一致するものを見つけます。私の2番目の解決策は、同様の画像を見つけるでしょう。(ちなみに、私は Delphi でハッシュ メソッドを書きましたが、技術的には、任意のハッシュ メソッドで十分です。)