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