顺带一提,ImageMagick 不是一个“PHP 工具”,它是一个命令行实用程序,在 PHP 之前就已经存在。它可以被许多程序或人们直接使用来处理图像。
而 Imagick 是 ImageMagick API 的本地 PHP 实现 —— https://www.php.net/manual/zh/intro.imagick.php
我知道我的答案微不足道,但当涉及到很多事情(包括编程)时,魔鬼都在细节中。
很遗憾,我没有关于在 Windows/IIS 上安装带有 Imagick/ImageMagick 的 PHP 的参考资料,但我认为 DLL 答案是正确的。
Imagick是一个用于php的Imagemagick API。
找到正确的dll,在php.ini中取消注释imagick并准备花费一些时间使其正常工作。
ImageMagick®是一个免费且开源的软件套件,用于显示、转换和编辑光栅图像和矢量图像文件。它可以读取和写入超过200种图像文件格式,并支持各种图像操作,如调整大小、裁剪和颜色校正。--摘自出版商的网站。
ImageMagick可能已经安装在您的系统上,并且与PHP和IIS无关。虽然它是一款受欢迎的图像编辑程序,但Windows用户可能会对缺少GUI感到不适;它大多数情况下是从命令行运行的。
Imagick是PHP对其ImageMagick扩展的名称。 Imagick通过包装或使用ImageMagick的大部分源代码来扩展PHP,但不一定使用ImageMagick安装的文件。
要启用PHP的Imagick扩展供FastCGI模块和PHP CLI使用,必须安装Imagick PECL包。注意:此处的说明适用于使用FastCGI模块调用PHP的Web服务器,而不是sapi(服务器)模块。
您可以从PHP的Windows网站开始,该网站链接到PECL扩展
使用搜索或浏览 >> 'Images',找到Imagick的链接,以获取Imagick PECL包的链接。
在PECL包页面上,指向Windows软件包的链接标记为'DLL'。跟随最新软件包的链接。如果您在DLL版本页面上,请选择适用于您的PHP、架构(x86 32位或x64)和线程安全性(TS或NTS)。FastCGI PHP始终需要NTS(非线程安全)。使用phpinfo确认您的要求。
下载PECL包并将其提取到您选择的文件夹中,例如imagick_php
。在Windows上,它可以是'c:\ imagick_php'。同样在Windows上,通过移出或删除所有*.pdb文件,可以将imagick_php
大小减少2/3。
通过将imagick_php
路径添加到a PATH环境变量,使imagick_php
可用于Imagick。
选项:
设置系统环境PATH变量;使imagick_php
可用于引用PATH变量的系统上的软件,包括PHP CLI和FastCGI,但需要重新启动。
如果您更多地使用IIS而不是PHP的CLI,则可以仅与PHP共享Imagick作为FastCGI,而无需重新启动。
在“管理工具”>“IIS管理器”>“服务器”>“FastCGI设置”中,找到与网站>“处理程序映射”>“PHP-FastCGI”>“可执行文件”对应的'应用'。编辑该'应用',向环境变量集合中添加一个变量:名称为path,值为c:\imagick_php;%path% 。imagick_php
复制到PHP的extension_dir中。在Windows上,它可能是“c:\php\ext”。 extension = imagick
,PHP 7.2+会自动找到路径和.dll文件名。 set path=c:\imagick_ph;%path%
然后输入 php -d extension=imagick -m
,并在已加载模块列表中查找imagick。imagick_php
文件夹复制到Web服务器网站。如果在Windows上,请编辑captcha.php,在其中更新setFont('Tahoma')或您系统上其他字体。