如何使用ImageMagick(IMagick API)处理jpg文件?当我尝试时,我得到一个异常,NoDecodeDelegateForThisImageFormat

时间:2010-02-17 23:13:05

标签: php imagick

我正在使用带有PHP IMagick API的ImageMagick处理上传的jpg文件 - 但是,当我尝试读取Blob甚至读取物理文件时,我得到NoDecodeDelegateForThisImageFormat例外。

我正在使用的代码示例如下:

private function resizeImageBlob($blob, $width, $height) {
    $image = new Imagick();
    $image->readImageBlob($blob);
    $image->resizeImage($width, $height, IMAGICK::FILTER_LANCZOS, 1);
    $resizedBlob = $image->getImageBlob();

    return $resizedBlob;
}

blob表示的图像是jpg图像,但ImageMagick在尝试读取该行时抛出异常:

$image->readImageBlob($blob);

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案。发生异常的原因确实是因为库没有内置jpeg支持,但发生这种情况的原因是因为Imagick php扩展版本和ImageMagick库的版本不同。

确保不遇到此问题的一个好方法是下载ImageMagick库和Imagick php扩展程序,并专门查看版本以查看它们匹配

或者,你可以通过在php.ini文件中启用它来检查php / ext文件夹中的Imagick php扩展的版本,并使用

echo phpinfo();

检查扩展的版本。然后,您可以下载相同版本的ImageMagick库。