在Imagemagick中重置PHP连接中的identifyImage()?

时间:2012-03-26 14:03:09

标签: php image image-processing imagemagick identify

我遇到了以下代码的奇怪问题:

$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)

1 个答案:

答案 0 :(得分:1)

我做了一些进一步的调查,我试图做的是检查图像是否是CMYK。我发现以下代码修复了我的原因,但没有修复错误:

$image = new Imagick($real_location);
$ident = $image->getImageColorspace();  
if($ident ==  Imagick::COLORSPACE_CMYK) {

}