我正在处理来自外部服务器的大量图像(在PHP 7.1中),并且大多数都在工作,但其中一些不是。我单独打开这些图像,并在浏览器和Photoshop中打开。这几张图片不会通过Imagick的readImageBlob()
方法。快速代码:
$img = new Imagick();
if( $image = file_get_contents('http://my.url/image.jpg') !== false ){
try{
$img->readImageBlob( $image );
} catch (Exception $e) {
error_log('failed to open image');
}
}
file_get_contents()
在工作图像和错误图像中都返回true。
没有try / catch,这就是PHP抛出的错误:
Uncaught ImagickException:此图像格式没有解码委托`'@ error / blob.c / BlobToImage / 361
另外,当我使用GD库作为后备方法时,会处理图像。