PHP-php 如何比较两个图片是否为同一个图片

PHP-php 如何比较两个图片是否为同一个图片

偏爱自由 发布于 2017-03-30 字数 183 浏览 1171 回复 4

比如我只知道两个图片的url:

$imagefile1 = "http://www.domain.com/im1.png";
$imagefile2 = "http://www.domain.com/im2.png";

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

晚风撩人 2017-10-28 4 楼

如果图片小的话用md5_file和sha1_file就挺好的,但是如果图片很大的话用这两个函数就悲催了。我说个偷懒的办法哈,就是首先读取图片的头几个字节(例如:1024个长度),然后比较,再读取文件的最后几个字节比较(例如:1024),如果不一样,则两个图片不一样,这样可以很快的定位的大图片的不一样,不用hash整个文件,如果头和尾都一样的,那么基本上这个图片就是一样的,当然也可能是两张不一样的图片,但毕竟这种情况少,如果不放心可以再随机从中间取几个字节进行比较,或者对整个文件再进行一次md5_file比较也行,这样处理起来就会少很大的压力。不然所有图片都md5会要人命的。

甜柠檬 2017-10-13 3 楼

php也可以操作二进制数据啊, 直接对图片二进制比较会快点吧, 不需要做md5或者sha1计算

虐人心 2017-08-17 2 楼

1,最简单的办法,取得两个文件md5,用md5_file
2,最麻烦的做法,用GD库加载图片,然后用图形算法计算两个文件的图形数据的差异。

浮生未歇 2017-05-21 1 楼

除了用md5_file,用sha1_file也挺快的:

$imagefile1 = "http://www.domain.com/im1.png";
$imagefile2 = "http://www.domain.com/im2.png";
var_dump(sha1_file($imagefile1) == sha1_file($imagefile2));