欢迎来到站长教程网!

PHP教程

当前位置:主页 > 网络编程 > PHP教程 >

php实现的证件照换底色成果示例【人像抠图/换配景图】

时间:2021-05-05|栏目: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);
        }
      }
    }
  }
}

php实现的证件照换底色成就示例【人像抠图/换布景图】

更多关于PHP相关内容感乐趣的读者可查察本站专题:《PHP图形与图片操纵能力汇总》、《PHP数组(Array)操纵能力大全》、《PHP数据布局与算法教程》、《php措施设计较法总结》、《PHP数学运算能力总结》、《php字符串(string)用法总结》及《php常见数据库操纵能力汇总》

但愿本文所述对各人PHP措施设计有所辅佐。

您大概感乐趣的文章:

上一篇:php生成短网址/短链接道理和用法实例阐明

栏    目:PHP教程

下一篇:PHP实现当舆图片转base64名目并上传

本文标题:php实现的证件照换底色成果示例【人像抠图/换配景图】

本文地址:www.jiaocheng88.com.cn/PHPjiaocheng/62015.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:584415406 | 邮箱:584415406#qq.com(#换成@)

Copyright © 2015-2020 小白站长教程网 版权所有 苏ICP备20040415号-3