如何在windows server上的IIS服务器上安装ImageMagick php扩展

如何在windows server上的IIS服务器上安装ImageMagick php扩展,php,iis,imagick,windows-server-2012-r2,Php,Iis,Imagick,Windows Server 2012 R2,我有一个WindowsWebServer2012R2,希望在上面安装ImageMagickPHP扩展,但下面的操作无法在phpinfo中显示它 如何让imagemagick运行?我找不到IIS的工作安装步骤。最终我找到了一个,这是一个以错误格式发布且未更正的。所以这个问题被删除了 我把这个问题的答案重新发布在这里,这样对于遇到同样问题的人来说就更容易找到了,因为我花了半天的时间才找到了有效的答案。这些步骤详细介绍了32位安装。我为我的64位php进行了64位安装 它位于Windows Serve

我有一个WindowsWebServer2012R2,希望在上面安装ImageMagickPHP扩展,但下面的操作无法在phpinfo中显示它


如何让imagemagick运行?我找不到IIS的工作安装步骤。

最终我找到了一个,这是一个以错误格式发布且未更正的。所以这个问题被删除了

我把这个问题的答案重新发布在这里,这样对于遇到同样问题的人来说就更容易找到了,因为我花了半天的时间才找到了有效的答案。这些步骤详细介绍了32位安装。我为我的64位php进行了64位安装

它位于Windows Server 2012R2 64位服务器上,使用IIS作为web服务器应用程序。但是,我安装了所有ImageMagick相关软件的32位版本,因为web服务器应用程序IIS是32位的。以下显示截至2017年10月的最新版本

1.下载ImageMagick安装程序 去

从菜单栏中单击下载

然后在顶部链接或向下滚动 选择Win32 dynamic at 16 bit per pixel组件,确保选择的是动态组件而不是静态组件。 2.下载ImageMagick的php模块 去 选择不是RC发行候选版本的最高版本–当前为3.4.3 选择PHP7.1版本的条目,用于VC14、x86和NTS非线程安全的IIS 下载并保存ZIP文件。 3.下载PHP的dependencies包以加载/使用ImageMagick 去 选择版本号最高的ImageMagick软件包 *请注意,这可能与1中的项目版本不同。在上面 选择vc14和x86版本* 4.取消阻止每个下载的文件 这可能是必要的,也可能不是必要的,这取决于您下载文件的方式,但如果需要,您应该始终检查并取消阻止下载的文件

右键单击每个文件并从弹出菜单中选择“属性” 如果属性对话框显示文本“此文件来自另一台计算机,可能被阻止以帮助保护此计算机”, 单击“取消阻止”按钮 单击“确定”。 如果不“取消阻止”下载的文件,尤其是ZIP文件,则安装或复制的单个文件仍可能标记为“阻止”,这有时会在运行软件时导致一些奇怪的问题

5.安装Imagick应用程序 运行ImageMagick-7.0.7-8-Q16-x86-dll.exe进行安装 接受许可协议 接受安装过程中每个屏幕上的默认设置。 安装完成后,要测试安装是否成功,请打开命令提示符并运行以下两个命令:

magick wizard: wizard.jpg
magick wizard.jpg win:
这将显示一个IMDisplay窗口,显示画架上创建蒙娜丽莎肖像的向导的草图/图像

6.安装依赖项 解压缩您在步骤3中下载的文件。 进入bin目录 将IM_MOD_RL_*.dll文件复制到ImageMagick安装版本的文件夹中,例如C:\Program files x86\ImageMagick-7.0.7-Q16 返回bin目录 将CORE_RL_*.dll文件20个文件复制到ImageMagick已安装版本的文件夹中,例如C:\Program files x86\ImageMagick-7.0.7-Q16**如果要覆盖/重命名,请在提示中选择“覆盖” 注意,这将中断Imagick的命令版本。magick:错误的JPEG库版本:库为80,调用方预期为62 7.安装Imagick php扩展dll 解压缩在步骤2中下载的文件。 将文件php_imagick.dll复制到服务器上安装的php版本的ext文件夹中,例如C:\php\7.1\ext。 不要复制核心文件 在web上的一些文章中,您将看到有关从该工具包中复制核心文件以替换ImageMagick文件夹中的文件的说明,但这是不正确的;在步骤6中复制了这些文件的相应版本

8.修改PHP.ini 编辑php软件文件夹中的php.ini文件,如“C:\php\7.1\php.ini” 将以下行添加到包含其他扩展名的部分:

   extension=php_imagick.dll
9重新启动服务器。 重新启动IIS似乎不够,您需要重新启动整个计算机。这可能与IIS无法识别Imagick输入的路径条目有关

10测试PHPINFO 在web根目录中创建包含以下内容的PHP文件:

在web浏览器中访问此文件

搜索PHPINFO输出中现在应该存在的“Imagick”部分。 它应该如下所示:

imagick imagick模块:启用imagick模块版本3.4.3 imagick类imagick、ImagickDraw、ImagickPixel、ImagickPixelIterator、ImagickKernel 使用ImageMagick版本ImageMagick 6.9.3-7 Q16 x86 2016-03-27编译的Imagick Imagick使用ImageMagick库版本ImageMagick 6.9.3-7 Q16 x86 2016-03-27 ImageMagick复印机 ht版权所有C 1999-2015 ImageMagick Studio LLC ImageMagick发布日期2016-03-27 ImageMagick支持的格式数:216 ImageMagick支持的格式3FR、AAI、AI、ART、ARW、AVI、AVS、BGR、BGRA、BGRO、BIE、BMP2、BMP3、BRF、CAL、CAL、画布、标题、CIN、CIP、CLIP、剪贴板、CMYK、CMYKA、CR2、CRW、CUR、CUR、CUT、DATA、DCM、DCR、DCX、DDS、DFONT、DJVU、DNG、DOT、DPS、DPX、DXT1、DXT5、EMF、EPDF、EPF、EPI、EPS、EPS、EPS2、EPS3、EPSF、EPSI、EPS、EPS、EPS2、EFP、EXR、,FPX、分形、FTS、G3、GIF、GIF87、渐变、灰度、GROUP4、GV、H、HALD、HDR、直方图、HRZ、HTM、HTML、ICB、ICO、图标、IIQ、信息、内联、IPL、ISOBRL、ISOBR16、J2C、J2K、JBG、JBIG、JNX、JP2、JPC、JPM、JPT、JSON、K25、KDC、标签、M2V、M4V、MAC、MAGICK、MAP、MAGIK、MAP、MASK、MASK、MASK、MAT、MAT、MEF、MIFF、MIFF、MKV、MOV、MOV、MP4、MPC、MPG、MPG、MPG、MPG、MSNEW、MTV、,NRW、NULL、ORF、OTB、OTF、PAL、PAM、图案、PBM、PCD、PCD、PCL、PCT、PCX、PDB、PDF、PDFA、PEF、PES、PFA、PFB、PFM、PGM、PICON、PICT、PIX、等离子、PNM、PPM、预览、PS、PS2、PS3、PSB、PSD、PTIF、PWP、径向梯度、RAF、RAS、RAW、RAW、RGB、RGBA、RGBO、RGF、RLA、RLE、RMF、RW2、SCR、屏幕截图、SHT、SFW、SGI、六色、稀疏、六色、六色、稀疏、,SR2、SRF、隐写术、SUN、TEXT、TGA、缩略图、TIFF、TIFF64、TILE、TIM、TTC、TTF、TXT、UBRL、UBRL6、UIL、UYVY、VDA、VICAR、VID、VIFF、VIP、VST、WBMP、WEBP、WMF、WMV、WPG、X3F、XBM、XC、XCF、XPM、XPS、XV、YCbCr、YCbCrA、YUV、YUV

重要: 如果“支持的格式”部分未显示任何格式,或仅显示少量格式,则最有可能的原因是您未将一个或多个IM_MOD_RL_*或CORE_RL_*DLL文件复制到ImageMagick文件夹中,或者您从“php_magick”工具包中复制了它们

11在PHP中使用ImageMagick测试图像生成 在web根目录中创建一个PHP文件,其中包含以下内容我从该项Verify ImageMagick安装中的一个条目复制了该文件:

<?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;
?>
在浏览器中运行此PHP文件。它应该显示一个包含文本Hello World!的图像

12检查错误 检查php-errors.log文件是否有任何错误。 您可以在php.ini文件中找到php-errors.log文件的定义位置。检查此文件是否存在与ImageMagick安装相关的任何最新错误

PDF文件需要重影脚本
在安装和设置上述所有内容之后,ImageMagick可以在PHP中用于转换图像,但不能用于将PDF文件转换为图像。对于最后一步,似乎还需要从安装Ghostscript,并且只有在我安装了64位版本的Ghostscript时,它才能正常工作,即使我安装的所有其他内容都是32位版本。只需要安装Ghostscript;不需要对php.ini或任何其他配置进行任何更改。

最终我找到了一个,这是一个以错误格式发布且未更正的。所以这个问题被删除了

我把这个问题的答案重新发布在这里,这样对于遇到同样问题的人来说就更容易找到了,因为我花了半天的时间才找到了有效的答案。这些步骤详细介绍了32位安装。我为我的64位php进行了64位安装

它位于Windows Server 2012R2 64位服务器上,使用IIS作为web服务器应用程序。但是,我安装了所有ImageMagick相关软件的32位版本,因为web服务器应用程序IIS是32位的。以下显示截至2017年10月的最新版本

1.下载ImageMagick安装程序 去

从菜单栏中单击下载

然后在顶部链接或向下滚动 选择Win32 dynamic at 16 bit per pixel组件,确保选择的是动态组件而不是静态组件。 2.下载ImageMagick的php模块 去 选择不是RC发行候选版本的最高版本–当前为3.4.3 选择PHP7.1版本的条目,用于VC14、x86和NTS非线程安全的IIS 下载并保存ZIP文件。 3.下载PHP的dependencies包以加载/使用ImageMagick 去 选择版本号最高的ImageMagick软件包 *请注意,这可能与1中的项目版本不同。在上面 选择vc14和x86版本* 4.取消阻止每个下载的文件 这可能是必要的,也可能不是必要的,这取决于您下载文件的方式,但如果需要,您应该始终检查并取消阻止下载的文件

右键单击每个文件并从弹出菜单中选择“属性” 如果属性对话框显示文本“此文件来自另一台计算机,可能被阻止以帮助保护此计算机”, 单击“取消阻止”按钮 单击“确定”。 如果不“取消阻止”下载的文件,尤其是ZIP文件,则安装或复制的单个文件仍可能标记为“阻止”,这有时会在运行软件时导致一些奇怪的问题

5.安装Imagick应用程序 运行Im ageMagick-7.0.7-8-Q16-x86-dll.exe来安装它 接受许可协议 接受安装过程中每个屏幕上的默认设置。 安装完成后,要测试安装是否成功,请打开命令提示符并运行以下两个命令:

magick wizard: wizard.jpg
magick wizard.jpg win:
这将显示一个IMDisplay窗口,显示画架上创建蒙娜丽莎肖像的向导的草图/图像

6.安装依赖项 解压缩您在步骤3中下载的文件。 进入bin目录 将IM_MOD_RL_*.dll文件复制到ImageMagick安装版本的文件夹中,例如C:\Program files x86\ImageMagick-7.0.7-Q16 返回bin目录 将CORE_RL_*.dll文件20个文件复制到ImageMagick已安装版本的文件夹中,例如C:\Program files x86\ImageMagick-7.0.7-Q16**如果要覆盖/重命名,请在提示中选择“覆盖” 注意,这将中断Imagick的命令版本。magick:错误的JPEG库版本:库为80,调用方预期为62 7.安装Imagick php扩展dll 解压缩在步骤2中下载的文件。 将文件php_imagick.dll复制到服务器上安装的php版本的ext文件夹中,例如C:\php\7.1\ext。 不要复制核心文件 在web上的一些文章中,您将看到有关从该工具包中复制核心文件以替换ImageMagick文件夹中的文件的说明,但这是不正确的;在步骤6中复制了这些文件的相应版本

8.修改PHP.ini 编辑php软件文件夹中的php.ini文件,如“C:\php\7.1\php.ini” 将以下行添加到包含其他扩展名的部分:

   extension=php_imagick.dll
9重新启动服务器。 重新启动IIS似乎不够,您需要重新启动整个计算机。这可能与IIS无法识别Imagick输入的路径条目有关

10测试PHPINFO 在web根目录中创建包含以下内容的PHP文件:

在web浏览器中访问此文件

搜索PHPINFO输出中现在应该存在的“Imagick”部分。 它应该如下所示:

imagick imagick模块:启用imagick模块版本3.4.3 imagick类imagick、ImagickDraw、ImagickPixel、ImagickPixelIterator、ImagickKernel 使用ImageMagick版本ImageMagick 6.9.3-7 Q16 x86 2016-03-27编译的Imagick Imagick使用ImageMagick库版本ImageMagick 6.9.3-7 Q16 x86 2016-03-27 ImageMagick版权所有C 1999-2015 ImageMagick Studio LLC ImageMagick发布日期2016-03-27 ImageMagick支持的格式数:216 ImageMagick支持的格式3FR、AAI、AI、ART、ARW、AVI、AVS、BGR、BGRA、BGRO、BIE、BMP2、BMP3、BRF、CAL、CAL、画布、标题、CIN、CIP、CLIP、剪贴板、CMYK、CMYKA、CR2、CRW、CUR、CUR、CUT、DATA、DCM、DCR、DCX、DDS、DFONT、DJVU、DNG、DOT、DPS、DPX、DXT1、DXT5、EMF、EPDF、EPF、EPI、EPS、EPS、EPS2、EPS3、EPSF、EPSI、EPS、EPS、EPS2、EFP、EXR、,FPX、分形、FTS、G3、GIF、GIF87、渐变、灰度、GROUP4、GV、H、HALD、HDR、直方图、HRZ、HTM、HTML、ICB、ICO、图标、IIQ、信息、内联、IPL、ISOBRL、ISOBR16、J2C、J2K、JBG、JBIG、JNX、JP2、JPC、JPM、JPT、JSON、K25、KDC、标签、M2V、M4V、MAC、MAGICK、MAP、MAGIK、MAP、MASK、MASK、MASK、MAT、MAT、MEF、MIFF、MIFF、MKV、MOV、MOV、MP4、MPC、MPG、MPG、MPG、MPG、MSNEW、MTV、,NRW、NULL、ORF、OTB、OTF、PAL、PAM、图案、PBM、PCD、PCD、PCL、PCT、PCX、PDB、PDF、PDFA、PEF、PES、PFA、PFB、PFM、PGM、PICON、PICT、PIX、等离子、PNM、PPM、预览、PS、PS2、PS3、PSB、PSD、PTIF、PWP、径向梯度、RAF、RAS、RAW、RAW、RGB、RGBA、RGBO、RGF、RLA、RLE、RMF、RW2、SCR、屏幕截图、SHT、SFW、SGI、六色、稀疏、六色、六色、稀疏、,SR2、SRF、隐写术、SUN、TEXT、TGA、缩略图、TIFF、TIFF64、TILE、TIM、TTC、TTF、TXT、UBRL、UBRL6、UIL、UYVY、VDA、VICAR、VID、VIFF、VIP、VST、WBMP、WEBP、WMF、WMV、WPG、X3F、XBM、XC、XCF、XPM、XPS、XV、YCbCr、YCbCrA、YUV、YUV

重要: 如果“支持的格式”部分未显示任何格式,或仅显示少量格式,则最有可能的原因是您未将一个或多个IM_MOD_RL_*或CORE_RL_*DLL文件复制到ImageMagick文件夹中,或者您从“php_magick”工具包中复制了它们

11在PHP中使用ImageMagick测试图像生成 在web根目录中创建一个PHP文件,其中包含以下内容我从该项Verify ImageMagick安装中的一个条目复制了该文件:

<?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;
?>
在浏览器中运行此PHP文件。它应该显示一个包含文本Hello World!的图像

12检查错误 检查php-errors.log文件是否有任何错误。 您可以在php.ini文件中找到php-errors.log文件的定义位置。检查此文件是否存在与ImageMagick安装相关的任何最新错误

PDF文件需要重影脚本 在安装和设置上述所有内容之后,ImageMagick可以在PHP中用于转换图像,但不能用于将PDF文件转换为图像。对于这最后一步,似乎还需要安装Gho
它只有在我安装了64位版本的Ghostscript的情况下才能正常工作,即使我安装的其他所有东西都是32位版本。只需要安装Ghostscript;不需要更改php.ini或任何其他配置。

更新接受的答案。该环境由FastCGIModule提供Win7 32位、IIS 7.5、PHP7.2安全读取。Wordpress 5.5.3为imagick模块搅拌。注意:如果您的代码需要imagick,那么截至2020年底,最新的非rc pecl包是php_imagick-3.4.4-7.4,其php_imagick.dll不适用于PHP8.0

人们发现PHP不需要“依赖项”包。这意味着imagemagick不会被php依赖项破坏,因此它对windows用户和php都是可行的

1.获取windows的ImageMagick 从下载windows ImageMagick-…-x-dll.exe的动态版本。x取决于您的系统。 这里测试了ImageMagick-7.0.10-43-Q16-x86-dll.exe,仅供参考

2.获取php_imagick模块 从下载与php安装的“线程安全性”匹配的最新imagick pecl包。在phpinfo输出中查找“线程安全”。避免发布候选包,即名称中带有“rc”的包。作为参考,php_imagick-3.4.4-7.2-ts-vc15-x86.zip线程安全版本在这里进行了测试。显而易见的共识是在IIS上使用非线程安全的php产品,但两者似乎都可行。IIS在内部禁用php的线程管理,并使用自己的线程管理。此40mb存档中使用的唯一文件是220kb的php_imagick.dll。跳过3

4.取消阻止下载 打开它们的属性,并单击“取消阻止”按钮(如果出现)

5.安装适用于windows的Imagemagick 运行exe,不要接受所有默认值,否则后果自负。安装向导将更新PATH环境变量,允许php命令在系统重新启动后到达imagick安装。我听到那些窃笑声

6.不需要PHP依赖项 关于vanilla Imagemagick安装,CORE_RL_.dll位于根目录中,而IM_MOD_RL_.dll文件(在其他安装方向中称为php依赖项)位于根目录/modules/coders/中。在覆盖150多个DLL并破坏原始安装之前,为什么不在普通安装上尝试php呢?什么改变了,或者什么时候改变了还不清楚,但是php_magick.dll和magick.exe似乎都很乐意分享最初的安装。换句话说,命令行上的imagick仍然有效。除非另行通知,否则不考虑“依赖项”

7. & 8.安装php_imagick模块 将php_imagick.dll从zip归档文件解压缩到php扩展目录。将该行添加到php解析的php.ini中

9. & 10通过PHP确认imagick模块加载 如果在安装Imagemagick for windows后没有重新启动,请重新启动。或者,在phpinfo输出中查找“imagick”的条目

11给我看一张照片 从cmdline进行快速测试

magick wizard: %temp%/wizard.jpg
magick %temp%/wizard.jpg win:
一个PHPImagick示例 我撒谎;使用模块zip中的第二个文件。将examples/polygon.php提取到您的站点,然后浏览到polygon.php以确认imagick模块的某些功能

我在这里提供了一个精简版,供那些只想进行简单测试的人使用。
<?php
// polygon.php
$Imagick = new Imagick();
$ImagickDraw = new ImagickDraw();
$ImagickPixel = new ImagickPixel();
$array = array( array( "x" => 378.1, "y" => 81.72 ),
                array( "x" => 381.1, "y" => 79.56 ),
                array( "x" => 384.3, "y" => 78.12 ),
                array( "x" => 387.6, "y" => 77.33 ),
                array( "x" => 391.1, "y" => 77.11 ),
                array( "x" => 394.6, "y" => 77.62 ),
                array( "x" => 397.8, "y" => 78.77 ),
                array( "x" => 400.9, "y" => 80.57 ),
                array( "x" => 403.6, "y" => 83.02 ),
                array( "x" => 523.9, "y" => 216.8 ),
                array( "x" => 526.2, "y" => 219.7 ),
                array( "x" => 527.6, "y" => 223 ),
                array( "x" => 528.4, "y" => 226.4 ),
                array( "x" => 528.6, "y" => 229.8 ),
                array( "x" => 528.0, "y" => 233.3 ),
                array( "x" => 526.9, "y" => 236.5 ),
                array( "x" => 525.1, "y" => 239.5 ),
                array( "x" => 522.6, "y" => 242.2 ),
                array( "x" => 495.9, "y" => 266.3 ),
                array( "x" => 493, "y" => 268.5 ),
                array( "x" => 489.7, "y" => 269.9 ),
                array( "x" => 486.4, "y" => 270.8 ),
                array( "x" => 482.9, "y" => 270.9 ),
                array( "x" => 479.5, "y" => 270.4 ),
                array( "x" => 476.2, "y" => 269.3 ),
                array( "x" => 473.2, "y" => 267.5 ),
                array( "x" => 470.4, "y" => 265 ),
                array( "x" => 350, "y" => 131.2 ),
                array( "x" => 347.8, "y" => 128.3 ),
                array( "x" => 346.4, "y" => 125.1 ),
                array( "x" => 345.6, "y" => 121.7 ),
                array( "x" => 345.4, "y" => 118.2 ),
                array( "x" => 346, "y" => 114.8 ),
                array( "x" => 347.1, "y" => 111.5 ),
                array( "x" => 348.9, "y" => 108.5 ),
                array( "x" => 351.4, "y" => 105.8 ),
                array( "x" => 378.1, "y" => 81.72 ),
              );
$ImagickPixel->setColor( 'gray' );
$Imagick->newImage( 700, 500, $ImagickPixel );
$Imagick->setImageFormat( 'png' );
$ImagickDraw->polygon( $array );
$Imagick->drawImage( $ImagickDraw );
header( "Content-Type: image/{$Imagick->getImageFormat()}" );
echo $Imagick->getImageBlob( );
?>

更新到已接受的答案。该环境由FastCGIModule提供Win7 32位、IIS 7.5、PHP7.2安全读取。Wordpress 5.5.3为imagick模块搅拌。注意:如果您的代码需要imagick,那么截至2020年底,最新的非rc pecl包是php_imagick-3.4.4-7.4,其php_imagick.dll不适用于PHP8.0

人们发现PHP不需要“依赖项”包。这意味着imagemagick不会被php依赖项破坏,因此它对windows用户和php都是可行的

1.获取windows的ImageMagick 从下载windows ImageMagick-…-x-dll.exe的动态版本。x取决于您的系统。 这里测试了ImageMagick-7.0.10-43-Q16-x86-dll.exe,仅供参考

2.获取php_imagick模块 从下载与php安装的“线程安全性”匹配的最新imagick pecl包。在phpinfo输出中查找“线程安全”。避免发布候选包,即名称中带有“rc”的包。作为参考,php_imagick-3.4.4-7.2-ts-vc15-x86.zip线程安全版本在这里进行了测试。显而易见的共识是在IIS上使用非线程安全的php产品,但两者似乎都可行。IIS在内部禁用php的线程管理,并使用自己的线程管理。此40mb存档中使用的唯一文件是220kb的php_imagick.dll。跳过3

4.取消阻止下载 打开它们的属性,并单击“取消阻止”按钮(如果出现)

5.安装适用于windows的Imagemagick 运行exe,不要接受所有默认值,否则后果自负。安装向导将更新PATH环境变量,允许php命令在系统重新启动后到达imagick安装。我听到那些窃笑声

6.酸碱度 P不需要依赖项 关于vanilla Imagemagick安装,CORE_RL_.dll位于根目录中,而IM_MOD_RL_.dll文件(在其他安装方向中称为php依赖项)位于根目录/modules/coders/中。在覆盖150多个DLL并破坏原始安装之前,为什么不在普通安装上尝试php呢?什么改变了,或者什么时候改变了还不清楚,但是php_magick.dll和magick.exe似乎都很乐意分享最初的安装。换句话说,命令行上的imagick仍然有效。除非另行通知,否则不考虑“依赖项”

7. & 8.安装php_imagick模块 将php_imagick.dll从zip归档文件解压缩到php扩展目录。将该行添加到php解析的php.ini中

9. & 10通过PHP确认imagick模块加载 如果在安装Imagemagick for windows后没有重新启动,请重新启动。或者,在phpinfo输出中查找“imagick”的条目

11给我看一张照片 从cmdline进行快速测试

magick wizard: %temp%/wizard.jpg
magick %temp%/wizard.jpg win:
一个PHPImagick示例 我撒谎;使用模块zip中的第二个文件。将examples/polygon.php提取到您的站点,然后浏览到polygon.php以确认imagick模块的某些功能

我在这里提供了一个精简版,供那些只想进行简单测试的人使用。
<?php
// polygon.php
$Imagick = new Imagick();
$ImagickDraw = new ImagickDraw();
$ImagickPixel = new ImagickPixel();
$array = array( array( "x" => 378.1, "y" => 81.72 ),
                array( "x" => 381.1, "y" => 79.56 ),
                array( "x" => 384.3, "y" => 78.12 ),
                array( "x" => 387.6, "y" => 77.33 ),
                array( "x" => 391.1, "y" => 77.11 ),
                array( "x" => 394.6, "y" => 77.62 ),
                array( "x" => 397.8, "y" => 78.77 ),
                array( "x" => 400.9, "y" => 80.57 ),
                array( "x" => 403.6, "y" => 83.02 ),
                array( "x" => 523.9, "y" => 216.8 ),
                array( "x" => 526.2, "y" => 219.7 ),
                array( "x" => 527.6, "y" => 223 ),
                array( "x" => 528.4, "y" => 226.4 ),
                array( "x" => 528.6, "y" => 229.8 ),
                array( "x" => 528.0, "y" => 233.3 ),
                array( "x" => 526.9, "y" => 236.5 ),
                array( "x" => 525.1, "y" => 239.5 ),
                array( "x" => 522.6, "y" => 242.2 ),
                array( "x" => 495.9, "y" => 266.3 ),
                array( "x" => 493, "y" => 268.5 ),
                array( "x" => 489.7, "y" => 269.9 ),
                array( "x" => 486.4, "y" => 270.8 ),
                array( "x" => 482.9, "y" => 270.9 ),
                array( "x" => 479.5, "y" => 270.4 ),
                array( "x" => 476.2, "y" => 269.3 ),
                array( "x" => 473.2, "y" => 267.5 ),
                array( "x" => 470.4, "y" => 265 ),
                array( "x" => 350, "y" => 131.2 ),
                array( "x" => 347.8, "y" => 128.3 ),
                array( "x" => 346.4, "y" => 125.1 ),
                array( "x" => 345.6, "y" => 121.7 ),
                array( "x" => 345.4, "y" => 118.2 ),
                array( "x" => 346, "y" => 114.8 ),
                array( "x" => 347.1, "y" => 111.5 ),
                array( "x" => 348.9, "y" => 108.5 ),
                array( "x" => 351.4, "y" => 105.8 ),
                array( "x" => 378.1, "y" => 81.72 ),
              );
$ImagickPixel->setColor( 'gray' );
$Imagick->newImage( 700, 500, $ImagickPixel );
$Imagick->setImageFormat( 'png' );
$ImagickDraw->polygon( $array );
$Imagick->drawImage( $ImagickDraw );
header( "Content-Type: image/{$Imagick->getImageFormat()}" );
echo $Imagick->getImageBlob( );
?>

我可以确认它也适用于XAMPP环境。经过4天的寻找合适的解决方案,终于找到了真正有效的解决方案!!感谢您提供此解决方案。对于其他人来说,我的问题是我需要所有的工作来处理PHP 5.4.9,这是用VC9 C++ 2008编译的。堆栈是IIS 7.5上的Windows 2008 R2。步骤3中与5.4.9兼容的最新依赖项包是ImageMagick-6.8.9-1-vc9-x86.zip from。至于php_imagick.dll,最后一个为PHP5.4.9编译的是3.4.1 at。最后,ImageMagick应用程序本身,ImageMagick-6.8.9-1-Q16-x86-dll.exe from。我可以确认它也适用于XAMPP环境。经过4天的寻找合适的解决方案,终于找到了真正有效的解决方案!!感谢您提供此解决方案。对于其他人来说,我的问题是我需要所有的工作来处理PHP 5.4.9,这是用VC9 C++ 2008编译的。堆栈是IIS 7.5上的Windows 2008 R2。步骤3中与5.4.9兼容的最新依赖项包是ImageMagick-6.8.9-1-vc9-x86.zip from。至于php_imagick.dll,最后一个为PHP5.4.9编译的是3.4.1 at。最后,ImageMagick应用程序本身,ImageMagick-6.8.9-1-Q16-x86-dll.exe from。