Symfony2: изменение размера загружаемых изображений

Есть ли способ изменить размер изображений при их загрузке в Symfony2?

ImagineAvalancheBundle позволяет изменять размер изображений до миниатюр только при их извлечении, что на самом деле неэффективно для меня.

Кроме того, объект UploadedFile, полученный при публикации данных, похоже, не имеет методов изменения размера...

Есть идеи ?


person Yoot    schedule 07.01.2012    source источник
comment
Пакет Imagine кэширует изображения с передискретизацией, поэтому производительность на самом деле не является проблемой, если только у вас не очень низкий уровень попаданий в кэш (в большинстве случаев с загрузками, специфичными для пользователя).   -  person Peter Kruithof    schedule 07.01.2012
comment
У меня такая же проблема, и я не могу использовать локальный кеш. Я выгружаю изображения с измененным размером в CDN.   -  person Acyra    schedule 12.02.2012
comment
Я только что опубликовал решение для создания миниатюр с помощью LiipImagineBundle , нечто подобное может работать и с ImagineAvalancheBundle.   -  person Peter Wooster    schedule 28.03.2013


Ответы (3)


У меня была та же проблема, о которой вы спрашиваете.

Основная проблема заключается в том, что пакет напрямую изменяет размеры и/или обрезает изображения. Так что это может занять много времени с большими изображениями и если на странице ожидается много изображений.

Поэтому я исправил эту проблему, вызвав непосредственно после imageupload функцию resize() для изображения. Следовательно, я сохраняю (копирую) изображение с измененным размером в файловую систему на сервере. Очевидно, я храню путь к изображению в базе данных, чтобы при необходимости загружать его напрямую.

Я попробовал включенный memcache из пакета imageresize, но в моем случае он не работает.

person sensi    schedule 12.03.2012

У меня была такая же проблема для проекта, который я на самом деле разрабатываю. Я много искал в сети и не нашел ничего действительно производительного, а также простого в использовании для нетехнических людей.

Я создал пакет, чтобы иметь возможность загружать с помощью загрузку файла jquery и обрезать с помощью jcrop с некоторыми другими функциями.

ComurImageBundle

person Can    schedule 07.03.2014

Какова именно ваша цель? Изменить размер и обрезать? Другой ?

Я не понимаю, почему вы говорите, что размер пакета изменяется только до миниатюры, поскольку вы можете точно определить свой пресет изменения размера через config :

  # app/config/config.yml

    avalanche_imagine:
        filters:
            my_thumb:
                type:    thumbnail
                options: { size: [120, 90], mode: outbound }
person Matthieu    schedule 07.01.2012
comment
прочитал правильно, он не сказал, что размер пакета изменяется только до миниатюры, он сказал, что позволяет изменять размер только изображений ... при их извлечении игнорируйте пунктирную часть - person gondo; 03.11.2014