比较 php 中的 2 张图片

2022-08-30 13:42:18

比较2个图像以查看它们是否都是相同的文件很容易,扔出文件MD5,但是通过使用PHP GD来确定2个图像是否相同,甚至是否合理地获得两个图像的差异。如果我们从哪里得到两者的差异,并且它都是白色的(id假设白色甚至黑色),那么我们现在会知道它都是相同的照片吗?

另请注意:id想知道是否有可能获得2张相同大小的图像来创建洋葱皮效果,1上的透明度为50%,另一种为50%。


答案 1

大多数其他答案是指使用各种哈希函数。这个问题显然是在询问比较图像的内容,而不是比较文件。

这意味着您最终必须实际理解图像的内容。在PHP中,有两个扩展经常用于此,ImageMagick和GD。

ImageMagick提供了各种工具,您可以通过PHP ImageMagick扩展程序来做到这一点。

http://www.php.net/manual/en/function.imagick-compareimages.php

最大的问题是该库的文档几乎不存在,因此将涉及很多试错。PHP扩展是围绕ImageMagick库的一个非常薄的包装器,因此可以在ImageMagick文档中找到compareimages()函数如何行为的详细信息。


答案 2
$md5image1 = md5(file_get_contents($image1));
$md5image2 = md5(file_get_contents($image2));
if ($md5image1 == $md5image2) {

}

推荐