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

  介绍

这篇文章主要介绍”php如何实现的证件照换底色功能示例例如人像抠图/换背景图”,在日常操作中,相信很多人在php如何实现的证件照换底色功能示例例如人像抠图/换背景图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“php如何实现的证件照换底色功能示例例如人像抠图/换背景图”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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

& lt; php ?//背景图和原图需要保持宽高要保持一样,这里的示例原图用的是蓝色背景   init ();   function  init () {   时间=美元才能old  & # 39; 1. png # 39;;   时间=美元才能new  & # 39; 2. png # 39;;//创才能建一个png透明图   时间=美元才能img  imagecreatefrompng(旧);   setpng才能(img,老了,美元新美元);   }   function  setpng (imgid,文件名,美元savename美元){   时间=美元才能bg  & # 39; bg.png& # 39;;//背景图   时间=美元才能new  imagecreatefrompng (bg);//创建一个png透明图   列表才能(宽度、高度美元)=getimagesize ($ filename);//获取长和宽   时间=美元才能white  imagecolorallocate (imgid 1155215美元);//选择一个替换颜色。这里是绿色   cleancolor才能(imgid,白色美元);   imagecolortransparent才能(imgid,白色美元);//把选择的颜色替换成透明   imagecopymerge才能(新的、imgid美元,0,0,0,0,宽度美元,美元的高度,100);//合并图片   imagepng才能(新的、savename美元);//保存图片   imagedestroy才能($ imgid);//销毁   imagedestroy才能(新);   echo 才能;& # 39;& lt; https://www.yisu.com/zixun/img  src=" savename美元。”>”;   }   函数cleancolor (imgid,颜色美元){   (宽度=imagesx美元imgid);//获取宽   (身高=imagesy美元imgid);//获取高   (我=0;美元我<宽度;美元+ +){   ($ k=0; $ k <高度;k美元+ +){//对比每一个像素   $ rgb=imagecolorat (imgid,我美元,$ k);   (r=美元rgb> 16) &0xff;//取r   $ g=(rgb> 8美元)&0xff;//取g   b=rgb&0xff;美元//取b   randr=1.5美元;   randg=1美元;   randb=1美元;//蓝色RGB大致的位置。替换成绿色   如果($ r <=65 * randr & & g <=225美元* $ randg & & $ b <=255 * randb & & b美元* $ randb>=100) {//如果能够精确的计算出要保留位置的,这里可以写绝对的数字   如果(>=宽/2 & & $美元我<=$宽/2 & & $ k>=$高度/2 <=$ & & $ k高度/2){      其他}{//改变颜色   imagesetpixel (imgid美元,美元我$ k美元颜色);   }   }   }   }   } <李>

美元老指的是要处理的图片,指定为png格式

<李>

新美元指的是处理后输出的图片名

<李>

美元bg指的是背景图

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

到此,关于“php如何实现的证件照换底色功能示例例如人像抠图/换背景图”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

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