0

我正在使用带有 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);

有谁知道为什么会发生这种情况?

4

1 回答 1

1

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

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

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

echo phpinfo();

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

于 2010-02-18T16:13:10.703 回答