本篇文章給大家分享的內容是關於如何使用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.'.'.$g.'.'.$b.'.='.$rgb.'<br>x='.$j.', y='.$i.'<br>'; 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('test2.png'));//產生圖片 return false;}