@BloodVIRUS

Как правильно создавать превью для gif?

Здравствуйте! Бьюсь над проблемой, и не могу понять на какой она стороне. Настройки сервера или php
У нас есть замечательный imagick, который умеет замечательно работать с изображениями. Но все заходит в тупик, когда я птаюсь накормить его "gif" форматом.
Лгкие файлы (до мегобайта) он конвертит запросто. Стоит только ему скормить файл по тяжлее (например файл на 10мб) то все, nginx говорит 502 Bad Gateway
Файл создается, но не полный (часть кадров не создалась)

Если я отдаю файл размером в 7мб то превьюшка создается без проблем.
Но если я в том же php файле строчками ниже пытаюсь создать еще одну превьюшку - вторая уже обрывается на 2 секунде и веб сервер возвращает 502

Сервер мощный, 32 ядра, 64gb DDR4
На слабньком сервере все то же самое, только уже с файлами в 1-2мб
Связка nginx 1.17 + php 7.3

код которым создаю превью:

$imagick = new Imagick("10.gif");

$format = $imagick->getImageFormat();
if ($format == 'GIF') {
  $imagick = $imagick->coalesceImages();
  do {
     $imagick->resizeImage(120, 120, Imagick::FILTER_BOX, 1);
  } while ($imagick->nextImage());
  $imagick = $imagick->deconstructImages();
  $imagick->writeImages('new_120x120.gif', true);

  $imagick = $imagick->coalesceImages();
  do {
     $imagick->resizeImage(120, 120, Imagick::FILTER_BOX, 1);
  } while ($imagick->nextImage());
  $imagick = $imagick->deconstructImages();
  $imagick->writeImages('new_121x121.gif', true);

}

$imagick->clear();
$imagick->destroy();
  • Вопрос задан
  • 350 просмотров
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
если нет возможности увеличить время работы скрипта, сделайте задачу для планировщика - в cli скрипт по времени не ограничен или если это возможно запускайте генерацию через js/ajax (по 1 файлу)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы