如何在Wampserver 3.0.0 64位上安装ImageMagick?

8
我曾经浪费了一整天的时间来解决这个问题。在不同的时候,我得到了“无法为此图像格式找到解码器”和“指定的模块无法被找到”的错误提示信息。我找到的这些问题的信息版本过于陈旧,并且其中许多都包括诸如覆盖从 PECL 发布的 ImageMagick 安装的 dlls 或将 dlls 复制到 windows/system32 中等指令;这两件事情我并不想去做。
环境:Windows 10 Wampserver: 3.0.0, Apache/2.4.17 (Win64) PHP/5.6.16
2个回答

26
  1. 下载并安装最新版本的 ImageMagick:
    ImageMagick-7.0.2-0-Q16-x64-dll.exe

  2. http://windows.php.net/downloads/pecl/releases/imagick/3.4.3rc1/下载了 php_imagick-3.4.3rc1-5.6-ts-vc11-x64

  3. php_imagick.dll 解压缩到 [wampserver 目录]\bin\php\php5.6.16\ext

  4. [wampserver 目录]\bin\apache\apache2.4.17\bin\php.ini 中添加 extension=php_imagick.dll

  5. 出现“no decode delegate for this image format”错误,但至少在 phpinfo() 中看到 imagick 出现了,其中可以看到 php_imagick.dll 是使用 ImageMagick 6.9.3-7 Q16 x64 编译的。之前没有明显的方式可以知道这一点。

  6. http://ftp.icm.edu.pl/packages/ImageMagick/binaries/下载了 ImageMagick-6.9.3-7-Q16-x64-dll.exe(ImageMagick 已从其网站中删除此软件包)。

  7. 卸载 ImageMagick-7.0.2-0-Q16-x64
    安装 ImageMagick-6.9.3-7-Q16-x64c:\ImageMagick
    c:\ImageMagick 添加到 PATH(在前面,以避免与 windows convert.exe 冲突)。

  8. 通过以下方式验证一切正常:

     $image = new Imagick();
     $image->readImage([path to my jpeg]);
    
     $wm = new Imagick();
     $wm->readImage([path to my watermark png]);
    
     $image->compositeImage($wm, imagick::COMPOSITE_OVER, 5, 5);
    
     header("Content-Type: image/jpeg");
     echo $image;
    

谢谢!在按照您的指示卸载7.0并安装6.9.3之前,我一直收到“PHP警告:PHP启动:无法加载动态库'c:/wamp64/bin/php/php5.6.25/ext/php_imagick.dll' - 找不到指定的模块。在未知的第0行”错误。现在它已经可以工作了。 - Artem Russakovskii

0

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