
ImageMagick介绍
ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过100种图象格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片。
Imagick是Imagemagick的PHP API。
下面介绍Imagick扩展的安装过程
一、配置环境:
- Win10 X64
- IIS X64
- PHP X64
二、安装ImageMagick程序
- 下载并安装Windows版本的ImageMagick安装程序:选择“Win X64、动态、16位”的程序。
下载地址 - 安装完成后,在命令提示符中运行以下两个命令:
正常会显示一个蒙娜丽莎肖像的“ IMDisplay”窗口。
magick wizard: wizard.jpg magick wizard.jpg win:
二、安装PHP依赖包
- 下载PHP的依赖安装包:本文中的PHP是7.47版本,基于VC15开发,所以选择下载“ImageMagick-XXXX-VC15-X64.zip”文件。
下载地址 - 解压后将“bin目录”下的“IM_MOD_RL_*.dll”和“CORE_RL_*.dll”所有DLL文件复制到ImageMagick安装程序,复制过程中遇到同名文件可以“覆盖”。
三、安装Imagick的PHP扩展
- 选择非RC版的最高版本,点击Windows标徽进入下载页面,然后根据PHP版本、系统版本、线性安全情况进行选择。根据服务器配置,这里选择“XX Non Thread Safe (NTS) X64”下载。
下载地址
在《PHP更新》这篇文章所有提及:建议FastCGI接口使用Non Thread Safe版本以获得更好的性能;ISAPI接口使用Thread Safe版本以获得更好的稳定性。 - 解压后将“php_imagick.dll”复制到PHP扩展目录,默认为PHP安装目录的“ext”文件夹。
- 修改PHP配置文件“PHP.ini”,在末尾添加“extension=php_imagick.dll”即可。
四、验证安装
- 重启IIS服务以生效配置。
建议条件允许的情况下直接重启服务器。 - 在Web目录下建立Test.PHP代码如下:
<?php error_reporting(E_ALL); ini_set( 'display_errors','1'); /* Create a new imagick object */ $im = new Imagick(); /* Create new image. This will be used as fill pattern */ $im->newPseudoImage(50, 50, "gradient:red-black"); /* Create imagickdraw object */ $draw = new ImagickDraw(); /* Start a new pattern called "gradient" */ $draw->pushPattern('gradient', 0, 0, 50, 50); /* Composite the gradient on the pattern */ $draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im); /* Close the pattern */ $draw->popPattern(); /* Use the pattern called "gradient" as the fill */ $draw->setFillPatternURL('#gradient'); /* Set font size to 52 */ $draw->setFontSize(52); /* Annotate some text */ $draw->annotation(20, 50, "Hello World!"); /* Create a new canvas object and a white image */ $canvas = new Imagick(); $canvas->newImage(350, 70, "white"); /* Draw the ImagickDraw on to the canvas */ $canvas->drawImage($draw); /* 1px black border around the image */ $canvas->borderImage('black', 1, 1); /* Set the format to PNG */ $canvas->setImageFormat('png'); /* Output the image */ header("Content-Type: image/png"); echo $canvas; ?>
- 在浏览器中打开地址Test.PHP,如果成功会显示“Hello World!”图像。至此配置全部完毕。
