PHP 图片对比

PHP image comparison

img_1由PHP创建,img_2保存在服务器上。我正在尝试将它们与图像进行比较,看看它们是否不同,我试过了,但它不起作用。

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

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

下一个示例有效,但是当我调用 imagepng 时,PHP 在浏览器或奇怪的字母中创建图像(如果 headers 未设置为 image/png)并且我不知道我想要那个。

$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 张图像的 best/correct 方法。


在 PHP 中比较图像的 best/correct 方法是什么?

你为什么不尝试比较两个图像的 MD5 哈希。

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