2つの画像を比較して同じファイルであるかどうかを確認するのは簡単で、MD5ファイルを投げますが、PHP Gdを使用して2つの画像が同じかどうかを判断することは可能です2つの画像の違い。2つの画像の違いを取得する場所がすべて白である場合(白または黒と仮定する場合)、その両方が同じ写真であることがわかります。
また、サイドノート:idは、同じサイズの2つの画像を取得して、オニオンスキンエフェクトを作成できるかどうかを知りたい(一方は50%、もう一方は50%)。
ImageMagickは、PHP ImageMagick拡張機能を通じて、これに使用できるさまざまなツールを提供しています。
http://www.php.net/manual/en/function.imagick-compareimages.php
最大の問題は、そのライブラリのドキュメントがほとんど存在しないため、多くの試行錯誤が伴うことです。
$md5image1 = md5(file_get_contents($image1));
$md5image2 = md5(file_get_contents($image2));
if ($md5image1 == $md5image2) {
}
libpuzzle は、画像を比較できるPHP拡張機能です。
同様の質問がこれについて尋ねられましたStackoverflow threadそして私は自分用に何かを開発しました。他の人に役立つようにここに投稿します。
2つ(またはそれ以上)の画像を取り、それらの違いをチェックするオプションを提供します。使用する解像度、厳密性などのオプション。
私はより包括的なそれに関するブログ投稿を書きました。
PHP Gd Libraryでの画像比較関数 http://www.robert-lerner.com/imagecompare.php
2つのピクセルごとの同一の画像の違いが次のようなJPEG画像のセットを重複排除する必要がありました。
私が使用したソリューションは次のとおりです。
createimagefromjpeg
関数を使用して画像を開きますimagegd2
を使用してGd2形式で画像を保存しますそれがそれほど簡単で解決策が終了するかどうかはわかりませんが、おそらく次から画像検出のアイデアを得ることができます:
2つのファイルだけを比較する場合、データをハッシュしてから比較するのが完璧なソリューションです。多数のファイルを比較する場合は、まずサイズに基づいてファイルを並べ替えてから、同じサイズでのみ比較します。