当前位置:首页 > PHP教程 > php图像处理 > 列表

php工具型代码之印章抠图

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-19 19:24:39 浏览: 评论:0 

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

  1. function getStamp(){ 
  2.   $path = storage_path('2018052411173848180.png'); 
  3.   $image = file_get_contents($path); 
  4.  
  5.  
  6.   $info = getimagesize($path); 
  7.   $im = imagecreatefromstring($image); 
  8.   $width = $info[0]; 
  9.   $height = $info[1]; 
  10.   for($i=0;$i<$height;$i+=1){ 
  11.     for($j=0;$j<$width;$j+=1){ 
  12.       $rgb = ImageColorAt($im$j$i); 
  13.       $r = ($rgb >> 16) & 0xFF; 
  14.       $g = ($rgb >> 8) & 0xFF; 
  15.       $b = $rgb & 0xFF; 
  16.       echo $r.'.'.$g.'.'.$b.'.='.$rgb.'<br>x='.$j.', y='.$i.'<br>'
  17.  
  18.       if(intval($r)>220 && $g >220 && $b>220){ 
  19.         $hex = imagecolorallocate($im, 255, 255, 255); 
  20.         imagesetpixel($im,$j$i$hex); 
  21.       } 
  22.     } 
  23.   } 
  24.   $white = imagecolorallocate($im , 255 , 255 , 255);//拾取白色 
  25.   imagefill($im , 0 , 0 , $white);//把画布染成白色 
  26.   imagecolortransparent($im , $white ) ;//把图片中白色设置为透明色 
  27.  
  28.   imagepng($im , storage_path('test2.png'));//生成图片 
  29.  
  30.   return false; 
  31. }

Tags: php印章抠图

分享到: