如何使用 Wampserver 3.0.0 64 安装 ImageMagick?

How to install ImageMagick with Wampserver 3.0.0 64?

我花了一天的时间试图解决这个问题,在不同的时间遇到​​ "no decode delegate for this image format" 和 "The specified module could not be found" 错误。我能找到的关于这些问题的信息是根据版本号标明日期的,并且许多包括说明,例如从 PECL 发行版覆盖 ImageMagick 安装的 dll 或将 dll 复制到 windows/system32;两件事我不想做。

环境:Windows10
Wampserver: 3.0.0, Apache/2.4.17 (Win64) PHP/5.6.16

  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 directory]\bin\php\php5.6.16\ext

  4. 已将 extension=php_imagick.dll 添加到
    [wampserver directory]\bin\apache\apache2.4.17\bin\php.ini

  5. 出现“没有此图像格式的解码委托”错误,但至少 imagick 出现在 phpinfo() 中,我可以看到 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;
    

我尝试了很多东西。诀窍是在活动 php.ini 行的末尾添加:

[ImageMagick]
extension="C:\WampDeveloper\Components\Php\ext\php_imagick\php_imagick.dll"
;imagick.locale_fix=0
;imagick.progress_monitor=0

信用: http://www.devside.net/wamp-server/installing-and-using-imagemagick-with-imagick-php-extension-php_imagick-dll-on-wamp