identifImage () в Imagemagick сбрасывает соединение в PHP? - PullRequest
0 голосов
/ 26 марта 2012

Я обнаружил странную проблему со следующим кодом:

$image = new Imagick($real_location); 
$ident = $image->identifyImage(); 
$format = $ident['colorSpace'];

В большинстве случаев это нормально. Но на некоторых фотографиях оно сбрасывает соединение и в основном заставляет его выглядеть, как будто время ожидания страницы истекло.

Примером фотографии является JPG с разрешением 72 dpi, 3008x2000, данные EXIF ​​включены, RGB, 8-битный канал.

Если я запустил его, как показано ниже, это нормально:

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 Ответ

1 голос
/ 26 марта 2012

Я провел дополнительное расследование, и я пытался проверить, является ли изображение CMYK.Я обнаружил, что следующий код исправил мою причину, но не исправил ошибку:

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

}
...