利用Imagick进行公章抠图

作者: | 2017年9月21日

一直使用上上签电子合同,有一个新项目需要使用时被告知要使用V3版本,经过测试发现需要自己进行公章抠图处理了;

由于使用PHP做为主开发语言,无奈之下,只能选择Imagick来进行图片处理;

抠图的代码很简单,直接上代码:

1
2
3
4
5
6
7
8
9
10
im = new \Imagick($imgurl);
$im->thumbnailImage(180, 180,true);
$x = $im->getImageWidth();  
$y = $im->getImageHeight();				
$im->transparentPaintImage($im->getImagePixelColor(0, 0), 0, 4000,0);
$im->transparentPaintImage($im->getImagePixelColor(0, $y), 0, 4000,0);
$im->transparentPaintImage($im->getImagePixelColor($x, 0), 0, 4000,0);
$im->transparentPaintImage($im->getImagePixelColor($x, $y), 0, 4000,0);
$im->setImageFormat("png");
$imagedata = $im->getImageBlob();

简单说一下我的处理思路:
先把公章图片裁减为180*180,然后分别获取4个角的颜色,再进行处理,最后设置图片格式,输出图片数据流;