我失去了一天试图弄清楚这一点,在不同的时间获得"没有解码代表这种图像格式"和"找不到指定的模块"错误。我可以在这些问题上找到的信息是在版本号方面的日期,许多包括从PECL发行版覆盖ImageMagick安装的dll或将dll复制到windows / system32中的说明;我不想做的两件事。
环境:Windows 10
Wampserver:3.0.0,Apache / 2.4.17(Win64)PHP / 5.6.16
答案 0 :(得分:12)
已下载并安装了最新的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
将extension = php_imagick.dll添加到[wampserver目录] \ bin \ apache \ apache2.4.17 \ bin \ php.ini
得到“此图像格式没有解码委托”错误,但至少想象力出现在phpinfo()中,我可以看到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;
答案 1 :(得分:0)
我尝试了很多事情。达到目的的方法是在活动的php.ini行末添加:
[ImageMagick]
extension="C:\WampDeveloper\Components\Php\ext\php_imagick\php_imagick.dll"
;imagick.locale_fix=0
;imagick.progress_monitor=0