ms2gallery Ресайз исходных изображений на сервере
Всем привет. Публикую «велосипед» по ресайзу исходных изображений на сервере в момент загрузки (без участия plupload, который имеет всякие недостатки).
Этот код валиден для версии ms2gallery 1.3.3-pl, сейчас версия 1.5.0 — и там похоже здорово рефакторили код.
Код для ресайза можно найти по ссылке:
gist.github.com/soulcreate/c45dbb700bfd3ded0e5b
вставляем в процессор core/components/ms2gallery/processors/mgr/gallery/upload.class.php
между
Соответственно в настройках источника файлов галереи изменяем параметры
PS: Известные недостатки:
В админке в галереи будет отображаться иходный размер изображения (загруженного), поскольку он считается на клиенте, в момент загрузки, и в процессе ресайза не корректируется.
Этот код валиден для версии ms2gallery 1.3.3-pl, сейчас версия 1.5.0 — и там похоже здорово рефакторили код.
Код для ресайза можно найти по ссылке:
gist.github.com/soulcreate/c45dbb700bfd3ded0e5b
вставляем в процессор core/components/ms2gallery/processors/mgr/gallery/upload.class.php
между
$this->mediaSource->createContainer($product_file->path, '/');и$file = $this->mediaSource->createObject(это для версии ms2gallery 1.3.3-plСоответственно в настройках источника файлов галереи изменяем параметры
maxUploadWidth
maxUploadHeight
maxUploadSizeпо-максимуму, чтобы не задействовать ресайз на клиенте с помощью plupload'а.PS: Известные недостатки:
В админке в галереи будет отображаться иходный размер изображения (загруженного), поскольку он считается на клиенте, в момент загрузки, и в процессе ресайза не корректируется.
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Оригинальное изображение нужно, чтобы генерировать из него все остальные. Оно не должно пережиматься в принципе — это оригинал.
Но на случай, если пользователь очень далёк от компьютера и пытается загружать 20 мегапиксельные фотки, они пережимаются предварительно на клиенте, чтобы сэкономить время и трафик.
Чтобы не грузить фотки по 10 мегабайт, они пережимаются, предположим, до 1 мегабайта (или какое там указано в настройках максимальное разрешение).
В чём смысл пережатия уже загруженного на сервере 20мп-оригинала я не знаю.
Ресайз на клиенте нужен для экономии времени и трафика, а что экономит пережимка на сервере?
Если нужно мега-качество, то просто отключи пережимку на клиенте.
Моё личное мнение, что если тебе настолько важно качество и размер фотографий, то лучше подготовить файлы самостоятельно, а не швырять всё подряд с iPhone и надеяться на лучшее.
Как пример могу привести сайт немецкой фотостудии, где все фотографии готовятся к публикации в Photoshop и больше не пережимаются. Там даже некоторые превью потом заменяют вручную, если они неудачно обрезаны.
Пережимка на сервере ничего не экономит, но она сохраняет качество изображения
Мега-качество вовсе не нужно. Достаточно обычного разрешения 800х600.
К примеру если пережимать фотки с последнего айфона через plupload, то он пипец что с ними делает.
можно для разных шаблонов ресурсов делать разные размеры исходных изображений.