Rumah > pembangunan bahagian belakang > tutorial php > 如何使用php代码实现印章的抠图(代码)

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

不言
Lepaskan: 2023-04-03 12:52:02
asal
3435 orang telah melayarinya

本篇文章给大家分享的内容是关于如何使用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;
}
Salin selepas log masuk

相关推荐:

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

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

Atas ialah kandungan terperinci 如何使用php代码实现印章的抠图(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan