如何在PHP上启用Imagick扩展

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!”图像。至此配置全部完毕。

订阅
提醒
0 评论
内嵌讨论
查看全部讨论