基于PHP写证件照换底色效果的代码是什么?
Admin 2022-10-27 群英技术资讯 979 次浏览
这篇主要是介绍“基于PHP写证件照换底色效果的代码是什么?”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决基于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);
}
}
}
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在thinkphp中,route路由的作用就是简化URL访问地址,并且根据定义的路由类型做出正确的解析,路由的目的就是为了简化路径,在简化路径的同时进行一些规则的定义。
这篇文章主要介绍了PHP AOP教程案例,本篇文章通过简要的案例,讲解了AOP该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
今天小编就为大家分享一篇使用laravel根据用户类型来显示或隐藏字段,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在laravel中,路由命名的作用是生成路由,便于重定向;路由命名可以让特定路由方便地生成URL或重定向。开发者可以用name方法链接到路由来定义指定路由的名称。
这篇文章主要介绍了Thinkphp5.0 框架视图view的比较标签用法,结合实例形式分析了thinkPHP5框架eq、equal、neq、notequal、egt及switch、range、between等标签相关用法,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008