我遇到了以下代码的奇怪问题:
$image = new Imagick($real_location);
$ident = $image->identifyImage();
$format = $ident['colorSpace'];
在大多数情况下,这很好。但是在某些照片上,它会重置连接,并且基本上会使页面看起来超时。
示例照片是JPD,72dpi,3008x2000,包括EXIF数据,RGB,8Bit-channel。
如果我像下面那样运行,那很好:
exec("identify -format %r ".$real_location,$output);
但是,如果可能的话,我会放弃远离exec()并尝试坚持使用。
我查看了我的PHP错误日志,并发现了以下内容:
httpd: magick/option.c:1264: GetImageOption: Assertion `image_info != (ImageInfo *) ((void *)0)' failed.
[Mon Mar 26 15:40:26 2012] [notice] child pid 1582 exit signal Aborted (6)
答案 0 :(得分:1)
我做了一些进一步的调查,我试图做的是检查图像是否是CMYK。我发现以下代码修复了我的原因,但没有修复错误:
$image = new Imagick($real_location);
$ident = $image->getImageColorspace();
if($ident == Imagick::COLORSPACE_CMYK) {
}