我该如何处理使用ImageMagick(IMagick API)的jpg文件?我得到一个例外,NoDecodeDelegateForThisImageFormat,whenver我试试
题
我使用ImageMagick与PHP IMagick API来处理上传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;
}
这斑点表示的图像是一个jpg图片,但ImageMagick的抛出异常时它会尝试读取的行:
$image->readImageBlob($blob);
有谁知道为什么会发生?
解决方案
我想通了,回答我的问题。除了正在发生的原因是确实是由于这样的事实,该库没有内置支持JPEG,但发生这种情况的原因是因为Imagick PHP扩展的版本和ImageMagick库的版本是不同的。
一个很好的方式,以确保不会碰到这个问题的方法是同时下载ImageMagick库和Imagick PHP扩展,并专门看版本,以查看它们是否匹配
另外,您也可以通过启用它在你的php.ini文件,并使用检查Imagick PHP扩展的PHP / ext文件夹的版本
echo phpinfo();
以检查扩展的版本。然后,您可以下载ImageMagick库的版本相同。
不隶属于 StackOverflow