加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php工具型代码之印章抠图

发布时间:2020-12-12 22:32:44 所属栏目:PHP教程 来源:网络整理
导读:能将白底红字的印章抠出来,用的是php,框架是laravel,其他框架请自行调节。扣其他颜色也可以,把里面的那段rgb参数判断改改就行了,最后抠出来的效果就是白底变透明,然后只留下红色的章,放在其他页面上就能形成盖章的效果了。代码自己写的,可能有bug,

能将白底红字的印章抠出来,用的是php,框架是laravel,其他框架请自行调节。扣其他颜色也可以,把里面的那段rgb参数判断改改就行了,最后抠出来的效果就是白底变透明,然后只留下红色的章,放在其他页面上就能形成盖章的效果了。代码自己写的,可能有bug,但是做做测试还是ok的,用到工作上的话请自行测试和优化。(在我自己测试对比下,能做到和PS差不多的抠图效果)

<div class="jb51code">
<pre class="brush:php;">
function getStamp(){
$path = storage_path('2018052411173848180.png');
$image = file_get_contents($path);

$info = getimagesize($path);
$im = imagecreatefromstring($image);
$width = $info[0];
$height = $info[1];
for($i=0;$i<$height;$i+=1){
for($j=0;$j<$width;$j+=1){
$rgb = ImageColorAt($im,$j,$i);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
echo $r.'.'.$g.'.'.$b.'.='.$rgb.'
x='.$j.',y='.$i.'
';

  if(intval($r)>220 && $g >220 && $b>220){
    $hex = imagecolorallocate($im,255,255);
    imagesetpixel($im,$i,$hex);
  }
}

}
$white = imagecolorallocate($im,255);//拾取白色
imagefill($im,$white);//把画布染成白色
imagecolortransparent($im,$white ) ;//把图片中白色设置为透明色

imagepng($im,storage_path('test2.png'));//生成图片

return false;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读