环境:Windows 10 Wampserver: 3.0.0, Apache/2.4.17 (Win64) PHP/5.6.16
下载并安装最新版本的 ImageMagick:
ImageMagick-7.0.2-0-Q16-x64-dll.exe
从http://windows.php.net/downloads/pecl/releases/imagick/3.4.3rc1/下载了 php_imagick-3.4.3rc1-5.6-ts-vc11-x64
将 php_imagick.dll
解压缩到 [wampserver 目录]\bin\php\php5.6.16\ext
在 [wampserver 目录]\bin\apache\apache2.4.17\bin\php.ini
中添加 extension=php_imagick.dll
出现“no decode delegate for this image format”错误,但至少在 phpinfo() 中看到 imagick 出现了,其中可以看到 php_imagick.dll 是使用 ImageMagick 6.9.3-7 Q16 x64
编译的。之前没有明显的方式可以知道这一点。
从http://ftp.icm.edu.pl/packages/ImageMagick/binaries/下载了 ImageMagick-6.9.3-7-Q16-x64-dll.exe
(ImageMagick 已从其网站中删除此软件包)。
卸载 ImageMagick-7.0.2-0-Q16-x64
,
安装 ImageMagick-6.9.3-7-Q16-x64
到 c:\ImageMagick
,
将 c:\ImageMagick
添加到 PATH(在前面,以避免与 windows convert.exe 冲突)。
通过以下方式验证一切正常:
$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