首页 >后端开发 >php教程 >如何使用php代码实现印章的抠图(代码)

如何使用php代码实现印章的抠图(代码)

不言
不言原创
2018-07-26 11:23:593350浏览

本篇文章给大家分享的内容是关于如何使用php代码实现印章的抠图(代码),内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们.

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

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.&#39;.&#39;.$g.&#39;.&#39;.$b.&#39;.=&#39;.$rgb.&#39;<br>x=&#39;.$j.&#39;, y=&#39;.$i.&#39;<br>&#39;;

      if(intval($r)>220 && $g >220 && $b>220){
        $hex = imagecolorallocate($im, 255, 255, 255);
        imagesetpixel($im,$j, $i, $hex);
      }
    }
  }
  $white = imagecolorallocate($im , 255 , 255 , 255);//拾取白色
  imagefill($im , 0 , 0 , $white);//把画布染成白色
  imagecolortransparent($im , $white ) ;//把图片中白色设置为透明色

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

  return false;
}

相关推荐:

php实现支付宝app支付和异步通知的代码实例

php socket编程常用的函数以及简单c/s交互的实现

以上是如何使用php代码实现印章的抠图(代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn