2016-06-18 7 views
1

img_1はPHPによって作成され、img_2はサーバーに保存されます。私はそれらを画像と比較して、それらが異なっているかどうかを確認しようとしていますが、これを試しましたが、うまくいきません。PHP画像の比較

$script_img = imagecreatetruecolor(2390, 2400); 
$web_img = imagecreatefrompng("URL_TO_IMG"); 

if ($script_img==$web_img) { 
    echo "SAME"; 
} 
else{ 
    echo "DIFFERENT"; 
} 

次の例では動作しますが、私はimagepngを呼び出すとき(ヘッダは、画像/ PNGに設定されていない場合)、私はそれをしたくないPHPは、ブラウザや変な文字でイメージを作成します。

$script_img = imagecreatetruecolor(2390, 2400); 
$web_img = imagecreatefrompng("URL_TO_IMG"); 
$rendered = imagepng($web_img); 

if ($script_img==$rendered) { 
    echo "SAME"; 
} 
else{ 
    echo "DIFFERENT"; 
} 

file_get_contents($script_img) == file_get_contents("URL_TO_IMG")でも試してみましたが、動作しません。

md5(file_get_contents(imagecreatetruecolor(2390, 2400))) == md5(file_get_contents(imagecreatefrompng("URL_TO_IMG")))を使用すると動作しますが、2つの画像を比較するのに最適な方法です。


PHPで画像を比較する最良の方法はありますか?

+2

http://stackoverflow.com/questions/3270929/compare-2-images-in-php – Mohammad

+0

私はすでにその答えを源泉が、私はあなたが必要とする – ihh66042

+1

まず画像を比較するための正しい方法は何か興味があります非常に具体的には、2つの画像が「等しい」ことを意味すると考えるものを定義します。これは非常に一般的に議論されている問題です。あなたの質問をあなたの研究に含めてください。 – CodeCaster

答えて

0

なぜ2つの画像のMD5ハッシュを比較してみてください。

$md5LocalImg = md5(file_get_contents($script_img)); 
    $md5WebImg = md5(file_get_contents($web_img)); 
    if ($md5LocalImg == $md5WebImg){ 
    echo("SAME"); 
    } 
    else{ 
    echo("DIFFERENT"); 
    } 
+0

これは動作しますが、これは画像を比較する正しい方法であるとは思わない – ihh66042

+0

私はあなたの要件に依存します。これらの画像の処理を進めるには、いくつかの画像処理ライブラリを使用することができます。さもなければMD5ハッシュは仕事をします。 – ErAcube