webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Как снизить расход ОЗУ при ресайзе фото?

есть сайт на yii2. Есть расширение. которое юзает GD и ресайзит фотки. Столкнулся с проблемой. При размере фотки около 3 мб - не хватает оперативки.
Ресайз идет в несколько этапов. Создается оригинал и 3 миниатюры.
Как это обойти? Есть наработки? Идеи? Предложения?
  • Вопрос задан
  • 410 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
У GD расход ОЗУ напрямую зависит от кол-ва пикселей. Сколько весит при этом картинка - не важно.

Если на хостинге есть imagemagick, используйте его.
У imagemagick очень много возможностей, но качество документации хромает (или я не нашел).
Вот вам простенькая обертка: pastebin.com/PF9j5wWF

Пример использования:
$img = new SimpleImagick($original_fullpath);
$img->resizeDownTo(256, 256);
$img->save($thumb_fullpath, IMAGETYPE_JPEG, 100);
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Используйте клиентские мощности habrahabr.ru/post/252175
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
OnYourLips
@OnYourLips
В настройках PHP пропишите:
memory_limit = 256M
Ответ написан
@AlexGx
Yii2 developer, business analytics
Рекомендую использовать более эффективные движки, вместо gd, вконтакте например используют Gmagick - более эффективный форк imagick
Ответ написан
Комментировать
@alexeytru
gc_collect_cycles(); периодически принудительно запускайте сборщик мусора, особенно, если обработка происходит пакетно, в цикле.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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