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

吾爱主题 阅读:116 2021-10-15 14:57:00 评论:0

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 <?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程序设计有所帮助。

原文链接:https://segmentfault.com/a/1190000022566355

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容