PHP图像比较

PHP图像比较,php,image-processing,image-comparison,Php,Image Processing,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"; } 下一个示例可以工作,但当我调用imag

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时,它会在浏览器中创建图像或奇怪的字母(如果标题未设置为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\u-get\u-contents($script\u-img)==file\u-get\u-contents(“URL\u-TO\u-img”)
,但不起作用

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

if ($script_img==$web_img ) {
    echo "SAME";
}
else{
    echo "DIFFERENT";
}
使用
md5(文件获取内容(ImageCreateTureColor(23902400))==md5(文件获取内容(imagecreatefrompng(“URL\u TO\u IMG”))
有效,但我怀疑这是比较两幅图像的最佳/正确方法



在PHP中比较图像的最佳/正确方法是什么?

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

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

为什么不试着比较两个图像的MD5散列呢

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

我已经给出了这个答案,但我感兴趣的是,比较图像的正确方法是什么?首先,你需要非常明确地定义你认为两个图像“相等”的含义。这是一个非常普遍讨论的问题,你的问题包括你的研究。将img_1复制粘贴并重命名为img_2。现在我们有两个相等的图像。所以你只对一个字节对一个字节相等的图像文件感兴趣?我已经给出了答案,但我感兴趣的是比较图像的正确方法是什么。首先,你需要非常明确地定义你认为两个图像“相等”的条件。这是一个非常普遍讨论的问题,你的问题包括你的研究。将img_1复制粘贴并重命名为img_2。现在我们有两个相等的图像。所以你只对一个字节对一个字节相等的图像文件感兴趣?然后对文件进行散列就可以了。这是可行的,但我怀疑这是比较图像的正确方法。这取决于您的要求。如果要继续处理这些图像,可以使用一些图像处理库。否则MD5哈希就可以了。这是可行的,但我怀疑这是比较图像的正确方法。这取决于您的要求。如果要继续处理这些图像,可以使用一些图像处理库。否则,MD5哈希将完成此任务。