【发布时间】:2016-10-20 04:02:09
【问题描述】:
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_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"))) 有效,但我怀疑这是比较两张图片的最佳/正确方法。
在 PHP 中比较图像的最佳/正确方法是什么?
【问题讨论】:
-
我已经找到了答案,但我对比较图像的正确方法很感兴趣
-
首先,您需要非常明确地定义您认为需要两个图像“相等”的内容。这是一个非常普遍讨论的问题,edit 你的问题包括你的研究。
-
获取img_1并复制粘贴并将其重命名为img_2。现在我们有 2 个相等的图像。
-
所以您只对逐字节相等的图像文件感兴趣?然后文件的哈希就可以了。
标签: php image-processing image-comparison