×

PHP扩展之 Imagick安装 去背景色,扣签名

chen chen 发表于2021-07-27 22:12:37 浏览542 评论0

抢沙发发表评论

php官网里,一大群老外也看不懂这玩意怎么装,主要原因在于,php版本庞杂,还有x86 x64 nts ts,对应的imagick版本也不一定相同,imagick第一道关还算容易,总还是有办法装上,imagick对应的ImageMagick程序又不一定了,又出现庞杂的版本,即使官网给出的依赖版本也没有效果,同时也没有官方任何地方给出一个合理的安装方法,真是变态。从中文到英文,从php文档到百度、谷歌资料,各种版本,全是坑!
使用环境
64-554138030.png
 
安装步骤
根据环境下载合适的 imagick扩展 和 imagemagick程序
1.下载拓展
下载地址一: http://windows.php.net/downloads/pecl/releases/imagick/
下载地址二: https://pecl.php.net/package/imagick
要点: 注意对应php版本 ts还是nts x86还是x64
这里以phpinfo()为准
所以我应该下载imagick 3.4.3版本 PHP5.6  Non Thread Safe (NTS) x86 的拓展——php_imagick-3.4.3-5.6-nts-vc11-x86.zip
2. 安装拓展
  1. 解压上述文件后,将php_imagick.dll复制到php/ext目录,或者其他你的存放拓展的目录

  2. 修改php.ini 加上extension=php_imagick.dll,注意php可能有多个ini,以phpinfo为准

  3. 此时复制解压上述文件目录中其他dll到php目录,重启apache,此时phpinfo显示拓展安装成功,但是 ImageMagick number of supported formats为0,到这里成功安装了一半

3 下载imagemagick程序
下载地址:http://windows.php.net/downloads/pecl/deps/
imagemagick还有官网下载,此处不鼓励从imagemagick官方下载,他们的网站上我并没有找到历史版本下载,安装失败的几率很大
下载与phpinfo提示一致的版本,此时需要注意  1.软件版本对应     2.vc11还是vc14 3.x86还是x64 都要以phpinfo为准,我的
8-2091341003.png
所以我下载 ImageMagick-6.9.3-7
4 安装imagemagick程序
  1. 下载的文件解压后,将程序整体复制到无空格 无中文字符的目录中 E:\Program Files (x86)\

  2. 配置环境变量,在“此电脑”右键“属性”,以此点击“高级” “环境变量” ,在 “系统变量”中找到键为path的数据,双击path,选择“新建”,将刚刚放程序的目录“E:\Program Files (x86)\ImageMagick\bin”填入即可

  3. 将“E:\Program Files (x86)\ImageMagick\bin”目录中的所有的以“.DLL‘为后缀的文件放入php的根目录,应该有145个

 
重启计算机
PHP 代码
error_reporting(E_ALL);
ini_set('display_errors', '1');
$color=new ImagickPixel("#ffffff");
$alpha='0.0';
$fuzz='0.5';
//imagick = new \Imagick(realpath("images/BlueScreen.jpg"));
$imagick = new Imagick(dirname(__FILE__).'/zyt.jpg');
   //Need to be in a format that supports transparency
   $imagick->setimageformat('png');
   $imagick->transparentPaintImage(
       $color, $alpha, $fuzz * Imagick::getQuantum(), false
   );
   //Not required, but helps tidy up left over pixels
   $imagick->despeckleimage();
   header("Content-Type: image/png");
   echo $imagick->getImageBlob();
$imagick->writeImage(dirname(__FILE__).'/zyt.png');
$imagick->clear();
$imagick->destroy();
 


群贤毕至

访客