Задать вопрос
@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();
  • Вопрос задан
  • 383 просмотра
Подписаться 2 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
если нет возможности увеличить время работы скрипта, сделайте задачу для планировщика - в cli скрипт по времени не ограничен или если это возможно запускайте генерацию через js/ajax (по 1 файлу)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы