致命错误:未捕获异常'ImagickException'带消息'NoDecodeDelegateForThisImageFormat
我无法使imagick与本地xampp一起工作。致命错误:未捕获异常'ImagickException'带消息'NoDecodeDelegateForThisImageFormat
错误
Fatal error: Uncaught exception 'ImagickException' with message 'NoDecodeDelegateForThisImageFormat
代码
$im = new imagick();
$im->setResolution(300, 300);
$im->readimage($base_dir . 'files/PDF/test.pdf');
$im->setIteratorIndex($i);
$im->setImageFormat('jpeg');
$newimgname = time();
$im->resizeImage(500, 500, Imagick::FILTER_LANCZOS, 1);
$im->cropImage(100, 100, 0, 0);
$thumbnail = $im->getImageBlob();
Imagick调用ImageMagick库来完成所有它的图像处理。 Image Magick库本身并不实际处理PDF,它调用GhostScript来处理它们并生成Image Magick随后读取的PNG或Jpeg。
NoDecodeDelegateForThisImageFormat表示Image Magick无法调用它认为它应该将解码委托给GhostScript的委托程序。
解决方法是通过yum或apt安装GhostScript,它应该可以工作。
如果它仍然不起作用,您应该检查Image Magick的代表文件(http://www.imagemagick.org/source/delegates.xml)中的PDF条目,并确保它可以从命令提示符调用 - 即检查Image Magick是否也会能够找到它。
我已经在我的windows(8.1)机器上安装了GhostScript最新版本。还没有运气! – 2014-09-12 09:42:23
如何对Image Magick说,在哪里可以找到GhostScript,如果GS安装在C:\ ghostscript上的Windows上? – user3383675 2016-09-22 06:34:33
即使在安装GhostScript之后,我们也无法从AWS切换到Azure后得到代表错误的imagick代码。我们结束了使用功能execInBackground运行命令(PHP.net Exec() Page)
注意的PHP代码转换为难懂的命令行,:在命令行没有单独使用EXEC工作。 php脚本不会正常终止。
//from PHP.net
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
//create a thumbnail from the first page of PDF
//old php code
/*
$image_magick = new imagick();
$image_magick->setbackgroundcolor('white');
$image_magick->readImage($file_path . "[0]");
$image_magick = $image_magick->flattenImages();
$image_magick->setResolution(300,300);
$image_magick->thumbnailImage(102, 102, true);
$image_magick->setImageFormat('jpg');
$image_magick->writeImage($thumbnail_path);
*/
//command line syntax
$cmd = "magick convert " . chr(34) . $file_path . "[0]" . chr(34) . " -background white -flatten -resample " . chr(34) . "300x300" . chr(34) . " -thumbnail " . chr(34) . "102x102" . chr(34) . " -format jpg -write " . chr(34) . $thumbnail_path . chr(34);
execInBackground($cmd);
POSS复制[此篇](http://*.com/questions/22547819/imagick-not-loading-images-with-nodecodedelegateforthisimageformat-error-mess) – 2014-09-11 06:46:53
欢迎的*的。请简要说明您正在尝试做什么,您尝试解决此问题的方法以及您希望输出的内容。 – JamesENL 2014-09-11 06:47:04
哇,今天的艰难人群。 @JeremyMiller这不是重复的,这是关于PDF的。 @ James Massey问题很简单,但实际上已经完成。 – Danack 2014-09-11 15:04:18