Рандомные ошибки ImageMagick

322
12 февраля 2020, 12:50

Использую в проекте imagine. Не часто, но появляются странные исключения, самое массовое:

ImagickException: insufficient image data in file `/var/www/.../images/image.jpg' @ error/jpeg.c/ReadJPEGImage/1039 in /var/www/.../vendor/imagine/imagine/lib/Imagine/Imagick/Imagine.php:54

Один раз проскочило такое:

ImagickException: Not a JPEG file: starts with 0x00 0x00 `/var/www/.../images/image.jpg' @ error/jpeg.c/JPEGErrorHandler/322 in /var/www/.../vendor/imagine/imagine/lib/Imagine/Imagick/Imagine.php:54

Сам проект на Yii2, для обёртки над imagine используется yiisoft/yii2-imagine, но там всего один простейший класс, и вряд ли он связан с данной ошибкой.

Собственно, строка на которой возникает ошибка:

$imagine = Image::getImagine()->open($path); // $path = full file path + name

Собственно Image::getImagine() сводится к return new \Imagine\Imagick\Imagine()

Не могу выловить причину. Сам файл, разумеется, нормальное изображение. Если постфактум попробовать открыть тем же кодом данный файл, то всё хорошо, ошибок нет. Подскажите, что можно сделать?

Версии:

$uname -a
Linux basetest 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
$ php --ri imagick
imagick
imagick module => enabled
imagick module version => 3.4.3RC2
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
ImageMagick release date => 20170114
ImageMagick number of supported formats:  => 226
ImageMagick supported formats => 3FR, AAI, ...
$ php -v
PHP 7.0.33-0+deb9u1 (cli) (built: Dec  7 2018 11:36:49) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies
READ ALSO
Как менять количество точек картинки (resolution)?

Как менять количество точек картинки (resolution)?

Имеется папка с 3000 картинками в PNGУ них Pixels/Inch: 72 и размеры 354px на 130px На выходе нужно получить эти же картинки с Pixels/Inch = 300, размеры сохранить

304
Доктрина не обновляет свойства объекта cmf SeoBundle после установки

Доктрина не обновляет свойства объекта cmf SeoBundle после установки

Я использую Symfony CMF SeoBundleМой класс сущности использует SeoAwareTrait

295
MySQL UPDATE с SELECT SUM из другой таблицы

MySQL UPDATE с SELECT SUM из другой таблицы

Есть две таблицы 'orders' (id, bank_name, order_amount) и 'balances' (bank_name, total_balance)С помощью формы данные добавляются в таблицу 'orders' и в тоже время обновляется...

303