如何在Windows 7上安装Imagick/Imagemagick PHP扩展

38
如何在Windows 7上安装ImageMagick?我按照以下步骤进行操作:
1. 下载并安装 ImageMagick-6.5.8-7 Q16-windows-dll.exe。下载地址为:http://www.imagemagick.org/download/binaries/,下载的文件名为ImageMagick-6.5.8-7-Q16-windows-dll.exe。
2. 从http://valokuva.org/outside-blog-content/ imagick-windows-builds/080709/下载php_imagick_dyn-Q16.dll文件。
3. 将下载到的php_imagick_dyn-Q16.dll文件复制到[PHP]/extension目录下,并将其重命名为php_imagick.dll。
4. 编辑php.ini文件,并添加新的扩展。
extension=php_imagick.dll
  • 保存 ini 文件并重启 Apache 服务器。

    (如果需要,重启您的 Windows)

  • phpinfo() 应该显示 Imagick 已启用。

  • 之后我执行了一个示例脚本,但它没有工作。它显示了 Imagick 类丢失错误。

    Fatal error: Class 'Imagick' not found in C:...\imgborder.php on line XXX

    请帮我安装 Imagick。 :-(


    6
    我知道这篇文章有点旧了,但今天我遇到了这个问题,花费了很长时间才让Imagick正常工作。在我的情况下,设置MAGICK_HOME环境变量是解决问题的关键。我记录了自己的发现:http://refreshless.com/blog/imagick-pecl-imagemagick-windows希望对大家有所帮助。 - Lg102
    @Lg102非常感谢您分享您的知识,我发现您的答案最适合我的情况。 - iamawebgeek
    http://.com/blog/imagick-pecl-imagemagick-windows/ 这篇教程是唯一帮助我设置好环境的,非常感谢。 - Avatar
    2
    http://valokuva.org/outside-blog-content/ 是一个失效的链接。 - Goose
    6个回答

    12

    检查.dll文件的权限,确保Apache用户有对该文件的读访问权限。最好更改[PHP]/extension目录的权限。

    更改权限的方法:

    1. 右键单击文件(夹)
    2. 选择“属性”
    3. 选择“安全”选项卡
    4. 点击“编辑”按钮

    将用户的权限更改为完全控制。


    7
    • PECL页面下载二进制文件(查找“DLL”链接)。
    • 打开存档,将所有*.dll文件复制到“php\ext”目录中。
    • 将扩展添加到php.ini:

      • 通常应添加extension=php_imagick.dll
      • 在某些WAMP平台上,可能会改为extension=ext/php_imagick.dll。只需查看现有扩展是如何定义的,然后进行类似操作即可。
    • 重新启动Web服务器。


    此时,Imagick已安装,但您可能会遇到以下错误:

    ImagickException:NoDecodeDelegateForThisImageFormat

    这意味着您还需要安装ImageMagick:

    • 此页面上,下载与您安装的Imagick对应的ImageMagick存档(MSVC版本,CPU架构)。
    • 打开此存档的“bin”目录,将*.dll文件复制到“php\ext”目录中。例如,您将需要IM_MOD_RL_jpeg_.dll来处理JPEG。

    这对我很有效,但在复制.dll文件后的最后几个步骤中,仍然出现错误“无法加载模块..IM_MOD_RL_PDF_.dll”,有什么想法吗? - azerafati
    1
    一种可能性是文件使用不同版本的MSVC编译。此外,在Imagick README中添加了一条注释:在Windows上安装。请查看他们链接到的文件。 - Gras Double
    @Bludream,根据我们之前的评论,我已经更新了我的答案。现在对你有用吗? - Gras Double
    3
    我更喜欢将ImageMagick的bin文件夹中的所有DLL文件复制到它自己的某个文件夹中,并将该文件夹添加到我的PATH环境变量中。这样我就不会在php/ext文件夹中弄乱了。 - TheStoryCoder

    3

    这里提供了Windows平台下的imagick 2.3.0二进制文件,使用VC6编译(你也可以在Mikko的博客中找到VC9编译的二进制文件),支持PHP 5.3.2(API20090626)。

    尝试此链接


    2

    我已经研究了这个解决方案,您将找到所有必要的库。下载这个 http://image_magick.veidrodis.com/image_magick/binaries/ImageMagick-6.6.2-10-Q16-windows-dll.exe

    在这里找到您的DLL文件 http://www.peewit.fr/imagick/

    要知道哪个库适合您的需求,请轻松运行phpinfo()

    在那里您会发现以下行,例如

    编译器 MSVC9(Visual C++ 2008)

    MSVC9告诉您它是使用Visual C9编译的,因此您需要下载VC9版本。 就这些了。

    祝您愉快,这让我花费了数小时的研究。


    2

    只需使用chocolatey

    choco install imagemagick

    完成


    1
    那么您建议安装另一款软件来安装Imagemagick吗?Imagemagick可以顺利安装,如果您完整阅读问题,您会发现OP在使用Imagick时遇到了问题。基本上,混淆来自于OP的问题标题和标签。我已经添加了Imagick标签和Imagick到标题中。 - Bonzo
    @Bonzo 从技术上讲,您现在不必再安装Chocolatey作为单独的软件了,Windows Powershell现在具有将Chocolatey包设置为存储库的功能,然后您可以通过内置于Windows的Powershell安装Imagemagick。 - Jonathan
    @Bonzo 你关于他的标题/标签是对的。我建议编辑一下标题。 - Jonathan

    2

    虽然这可能有些大材小用,但我喜欢Cygwin,它是一个Windows下类Unix的环境;它包含了imagemagick作为一个软件包。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接