Imagick вызывает выходной анализатор ошибок
Я использую php 7.2 и ImageMagick-7.0.8-12. Я использую его для создания миниатюр примерно так:
function thumbimg($sourcePath, $thumbPath) {
try {
if (file_exists($sourcePath)) {
$imagick = new Imagick();
$imagick->readImage($sourcePath);
$imagick->setImageFormat("jpg");
header('Content-Type: image/jpeg');
$imagick->writeImage($thumbPath);
$imagick->clear();
$imagick->destroy();
chmod($thumbPath, 0755);
return;
}
} catch (ImagickException $e) {
echo $this->raiseError('Could not save image to file: ' . $e->getMessage(), IMAGE_TRANSFORM_ERROR_IO);
}
return;
}
Скрипт php возвращает эхо-файл JSON, как и было задумано, но когда я смотрю предварительный просмотр сети, он показывает пустое изображение со ссылкой на пост в этом скрипте. Такое поведение начинается на линии $imagick = new Imagick();
До этого ведет себя нормально. В то время как я получаю желаемый JSON, он портится с другими функциями, которые выдают результаты.
1 ответ
Я бы искал другой пример с Imagick, так как ваш выглядит немного беспорядочно. У вас есть заголовок в середине вашего кода, который используется для отображения. Понятия не имею, почему у вас есть chmod, и я бы подумал, что если это потребуется, это будет в начале кода Imagick. Я также не вижу никаких миниатюр кода.
Попробуй это:
$im = new Imagick($input);
$im->resizeImage( 100, 100, imagick::FILTER_LANCZOS, TRUE );
$im->writeImage('resizeImage.jpg');
$im->destroy();
(Фильтр не является обязательным, так как Imagick выберет лучший фильтр для увеличения или уменьшения размера.)
Я думаю, как @Mark Setchell говорит, что уничтожать не нужно