WEB技术之后端技术

php判断两张图片是否相同

PHPer 2018-01-23 252次浏览 0条评论 0 0 0
原文链接:http://www.webyang.net/Html/web/article_327.html随着上传图片的增多,有的时候需要判断是否是相同的图片,然后进行删除。那么如何实现这个过程呢?方...

原文链接:http://www.webyang.net/Html/web/article_327.html

随着上传图片的增多,有的时候需要判断是否是相同的图片,然后进行删除。那么如何实现这个过程呢?

方法一:

sha1_file() 或者 md5_file()方法。

  1. $file = "./img/1.jpg";
  2. $file2 = "./img/2.jpg";
  3. $gg = sha1_file($file);
  4. $aa = sha1_file($file2);
  5. if($aa == $gg) echo 'equation';


这两个方法只能判断两张完全相同的图片,包括文件的大小,尺寸,另外这个方法还可以用来判断文件。

方法二:

  1. $filename = '1.jpg';
  2. list($width, $height) = getimagesize($filename);
  3. $img = imagecreatefromjpeg($filename);
  4. $new_img = imagecreatetruecolor(8, 8);
  5. imagecopyresampled($new_img, $img, 0, 0, 0, 0, 8, 8, $width, $height);
  6. imagefilter($new_img, IMG_FILTER_GRAYSCALE);
  7. $colors = array();
  8. $sum = 0;
  9. for ($i = 0; $i < 8; $i++) {
  10. for ($j = 0; $j < 8; $j++) {
  11. $color = imagecolorat($new_img, $i, $j) & 0xff;
  12. $sum += $color;
  13. $colors[] = $color;
  14. }
  15. }
  16. $avg = $sum / 64;
  17. $hash = '';
  18. $curr = '';
  19. $count = 0;
  20. foreach ($colors as $color) {
  21. if ($color > $avg) {
  22. $curr .= '1';
  23. } else {
  24. $curr .= '0';
  25. }
  26. $count++;
  27. if (!($count % 4)) {
  28. $hash .= dechex(bindec($curr));
  29. $curr = '';
  30. }
  31. }
  32. print $hash . "\n";


...

登录 | 立即注册

更新于:2018-01-31 15:20:10
    您需要登录后才可以评论。 登录 | 立即注册
    相关内容

    PHP双引号中变量的判断

    实测,在双引号中,php对变量的判断方式,应该是用的规范的正则匹配/$\w*[^\W]/;匹配出来的结果在进入变量列表,所以当双引号中,某变量后面增加了\w的字符内容,...

    PHP判断语句的类型判断???

    先放代码$phonejudgestring="";for($i=0;$i<count($phone);$i++){ $phonejudgestate[$i]=0; if($phonejudgestring!=""){ $phonejudgestring=$phonejudgestring.

    PHP ==及===在获取$_GET[]或者$POST[]后的判断

    实测post 和get在传输内容上没有区别,就用$_GET来解释当参数不存在时,也就是获取不到值时,$_GET["参数"]==“”判断为是,===""判断为否,==NULL判断为是,===...

    Mysql字符串字段判断是否包含某个字符串的方法

    https://www.cnblogs.com/ericli-ericli/articles/7904019.htmlMysql字符串字段判断是否包含某个字符串的方法方法一:likeSELECT * FROM 表名 WHERE 字段名 like "%字...

    PHP向js传数组

    网上https://www.cnblogs.com/jiqing9006/p/9618417.html的答案是错误的
    推荐内容

    MySQL数据库设计总结

    规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字...

    什么是B-Tree

    二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比

    查问我看笔记功能的实现过程-全文搜索待开启,试试yiisoft/yii2-sphinx

    查问我看笔记功能的实现的重点就是全文搜索,如果不用Yii自带的ActiveRecord的话,就要找扩展,先找了个yii-xunsearch,不行太差了,又找了yiisoft/yii2-elasticsearch,...

    yii2框架中使用sphinx使用搜索引擎 多条件选择搜索

    运行php composer.phar require --prefer-dist yiisoft/yii2-sphinx

    超省心游戏加速:Wireguard+udp加速(CentOS版)--(实测:超不省心),以后搜帖...

    Wireguard+udpspeeder+udp2raw游戏加速方案 ---------------------------------------错误报告及解决-----------...

    wireguard+udpspeeder+udp2raw多用户配置

    Wireguard+udpspeeder+udp2raw游戏加速方案改进版-实测有效

    基于CentOS7 Centos8平台搭建邮件服务器

    EwoMail​在Centos8上安装了,各种坑,各种报错。这个集成包太臃肿了。 20200416 EwoMail 已经弃用,国内的一家公司搞的坑爹产品。 20200418

    如何在RHEL8 / CentOS8上安装Webmin

    设置postfix作为邮件发送服务器

    使用Yii2遇到的问题整理

    Yii的东西很多,学习和使用的时候遇到了各种各样的问题,这里记录整理下,方便大家分享。composer安装kartik-v/yii2-mpdf时报错,这里记录下 Yii2用compos...

    Yii2用composer更新时遇到的错误

    Yii2 用composer update 时提示'git' 不是内部或外部命令,也不是可运行的程序或批处理文件

    Yii2​用composer安装kartik-v/yii2-mpdf时报错,成功解决后,再让其支持中文。

    使用Yii2的setFlash和bootstrap.min.js遇到的问题,bootstrap.min.js的bug?

    Yii2的action不支持大小写吗?其实是支持的

    composer install 使用tips-网上找的composer install的使用技巧方法