php实现的证件照换底色功能示例【人像抠图/换背景图】

 更新时间:2020-06-14 00:02:49   作者:佚名   我要评论(0)

本文实例讲述了php实现的证件照换底色功能。分享给大家供大家参考,具体如下:


<&#63;php
//背景图和原图需要保持宽高要保持一样,这里的示例原图用的是蓝色背景

本文实例讲述了php实现的证件照换底色功能。分享给大家供大家参考,具体如下:

<?php
//背景图和原图需要保持宽高要保持一样,这里的示例原图用的是蓝色背景
init();
function init(){
  $old = '1.png';
  $new = '2.png';
  //创建一个png透明图
  $img = imagecreatefrompng($old);
  setpng($img,$old,$new);
}
function setpng($imgid,$filename,$savename){
  $bg = 'bg.png';//背景图
  $new = imagecreatefrompng($bg);//创建一个png透明图
  list($width,$height)=getimagesize($filename);//获取长和宽
  $white = imagecolorallocate($imgid,1,155,215);//选择一个替换颜色。这里是绿色
  cleancolor($imgid,$white);
  imagecolortransparent($imgid,$white);//把选择的颜色替换成透明
  imagecopymerge($new,$imgid,0,0,0,0,$width,$height,100);//合并图片
  imagepng($new,$savename);//保存图片
  imagedestroy($imgid);//销毁
  imagedestroy($new);
  echo '<img src="'.$savename.'">';
}
function cleancolor($imgid,$color){
  $width = imagesx($imgid);//获取宽
  $height = imagesy($imgid);//获取高
  for($i=0;$i<$width;$i++){
    for($k=0;$k<$height;$k++){
      //对比每一个像素
      $rgb = imagecolorat($imgid,$i,$k);
      $r = ($rgb >> 16)&0xff;//取R
      $g = ($rgb >> 8)&0xff;//取G
      $b = $rgb&0xff;//取B
      $randr = 1.5;
      $randg = 1;
      $randb=1;
      //蓝色RGB大致的位置。替换成绿色
      if($r<=65*$randr && $g<=225*$randg && $b<=255*$randb && $b*$randb>=100){
        //如果能够精确的计算出要保留位置的,这里可以写绝对的数字
        if($i>=$width/2 && $i<=$width/2 && $k>=$height/2 && $k<=$height/2){
          
        }else{
          //改变颜色
          imagesetpixel($imgid,$i,$k,$color);
        }
      }
    }
  }
}

  • $old指的是要处理的图片,指定为png格式
  • $new指的是处理后输出的图片名
  • $bg指的是背景图

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • 使用PHP生成二维码的两种方法(带logo图像)
  • php图像处理函数大全(推荐收藏)
  • PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
  • PHP图片裁剪函数(保持图像不变形)
  • PHP图像处理之imagecreate、imagedestroy函数介绍
  • PHP实现提取一个图像文件并在浏览器上显示的代码
  • 基于OpenCV的PHP图像人脸识别技术
  • PHP图像识别技术原理与实现
  • PHP中绘制图像的一些函数总结
  • PHP GD库生成图像的几个函数总结
  • 解析php常用image图像函数集
  • PHP基于GD库的图像处理方法小结

相关文章

  • php实现的证件照换底色功能示例【人像抠图/换背景图】

    php实现的证件照换底色功能示例【人像抠图/换背景图】

    本文实例讲述了php实现的证件照换底色功能。分享给大家供大家参考,具体如下: <&#63;php //背景图和原图需要保持宽高要保持一样,这里的示例原图用的是蓝色背景
    2020-06-14
  • PHP实现本地图片转base64格式并上传

    PHP实现本地图片转base64格式并上传

    我们在开发系统时,处理图片上传是不可避免的,例如使用thinkphp的肯定很熟悉import("@.ORG.UploadFile");的上传方式,今天我们来讲一个使用html5 base64上传图片的
    2020-06-14
  • php使用自带dom扩展进行元素匹配的原理解析

    php使用自带dom扩展进行元素匹配的原理解析

    DOMDocument php提供了非常好用的解析html和xml文档的扩展库DOM,使用这个库可以非常高效的进行html和xml文档的解析,它的原理就是通过寻找首尾匹配对来进行文档的解
    2020-06-14
  • PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】

    PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】

    本文实例讲述了PHP实现图片防盗链破解操作。分享给大家供大家参考,具体如下: 很多小伙伴的博客,网站都是用图床来实现的,那么现在很多稳定的图床接口都被做了防盗
    2020-06-14
  • PHP论坛实现积分系统的思路代码详解

    PHP论坛实现积分系统的思路代码详解

    首先在用户表定义一个积分字段; 然后创建一个等级表,主要字段有等级名,上限积分和下限积分; 再根据用户的行为进行积分累加; 最后根据判断用户积分在哪个等级范
    2020-06-14
  • PHP Web表单生成器案例分析

    PHP Web表单生成器案例分析

    本文实例讲述了PHP Web表单生成器。分享给大家供大家参考,具体如下: 1.实例: 2. 需求分析 在项目的实际开发中,经常需要设计各种各样表单。直接编写HTML表单虽然
    2020-06-14
  • 一文看懂PHP进程管理器php-fpm

    一文看懂PHP进程管理器php-fpm

    php-fpm是什么 php-fpm是PHP的一个进程管理器。php下面的众多work进程皆有php-fpm进程管理器管理。 php-fpm的工作原理 php-fpm全名是PHP FastCGI进程管理器。php
    2020-06-14
  • PHP与Web页面交互操作实例分析

    PHP与Web页面交互操作实例分析

    本文实例讲述了PHP与Web页面交互操作。分享给大家供大家参考,具体如下: Web交互 1.Web表单交互 当表单的method属性提交方式为POST时,浏览器发送POST请求 当
    2020-06-14
  • 简单的php购物车代码

    简单的php购物车代码

    本文介绍一个php实现的购物车代码,功能实现完整,具有一定的参考价值 这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是
    2020-06-14
  • PHP常用字符串函数用法实例总结

    PHP常用字符串函数用法实例总结

    本文实例总结了PHP常用字符串函数用法。分享给大家供大家参考,具体如下: 字符串函数 explore 使用一个字符串分割另一个字符串 结果为数组 <&#63;php $str = 'a,
    2020-06-14

最新评论