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мп-оригинала я не знаю.
                    Оригинальное изображение нужно, чтобы генерировать из него все остальные. Оно не должно пережиматься в принципе — это оригинал.
Но на случай, если пользователь очень далёк от компьютера и пытается загружать 20 мегапиксельные фотки, они пережимаются предварительно на клиенте, чтобы сэкономить время и трафик.
Чтобы не грузить фотки по 10 мегабайт, они пережимаются, предположим, до 1 мегабайта (или какое там указано в настройках максимальное разрешение).
В чём смысл пережатия уже загруженного на сервере 20мп-оригинала я не знаю.
                Если непонятен мой вопрос, повторяю еще раз: зачем пережимать уже загруженный оригинал?
Ресайз на клиенте нужен для экономии времени и трафика, а что экономит пережимка на сервере?
Если нужно мега-качество, то просто отключи пережимку на клиенте.
                    Ресайз на клиенте нужен для экономии времени и трафика, а что экономит пережимка на сервере?
Если нужно мега-качество, то просто отключи пережимку на клиенте.
                Согласен. В этом и фишка этого плаплоада, чтобы заказчику отдав сайт не пришлось рассказывать ещё и о том, что перед загрузкой фотки, ему придется её ужать средствами какого-нибудь Фотошопа. Этим меня и привлекает компонент ms2Gallery. Хотя… не только этим…            
                    
                все это очень странно, но у меня складывается впечатление, что только меня не устраивает качество пережимки plupload. Хотя в интернетах натыкался на подобные же недочеты в работе plupload. Раз всех устраивает, подскажите, какой браузер нужен, чтобы plupload нормально пережимал изображения, или какие другие рекомендации?            
                    
                Я в своё время решил выбрать удобство вопреки качеству. Советовать забить и ждать лучшего инструмента, который делал бы всё то + по качеству не подводил, я думаю не имеет смысла. Каждый руководствуется своими соображениями. Однако моя рекомендация именно в этом.            
                    
                Да, у меня складывается ровно такое же впечатление, потому что кроме тебя больше этот вопрос никто не поднимает.
Моё личное мнение, что если тебе настолько важно качество и размер фотографий, то лучше подготовить файлы самостоятельно, а не швырять всё подряд с iPhone и надеяться на лучшее.
Как пример могу привести сайт немецкой фотостудии, где все фотографии готовятся к публикации в Photoshop и больше не пережимаются. Там даже некоторые превью потом заменяют вручную, если они неудачно обрезаны.
                    Моё личное мнение, что если тебе настолько важно качество и размер фотографий, то лучше подготовить файлы самостоятельно, а не швырять всё подряд с iPhone и надеяться на лучшее.
Как пример могу привести сайт немецкой фотостудии, где все фотографии готовятся к публикации в Photoshop и больше не пережимаются. Там даже некоторые превью потом заменяют вручную, если они неудачно обрезаны.
Если непонятен мой вопрос, повторяю еще раз: зачем пережимать уже загруженный оригинал?Для экономии места на хостинге, особенно когда загружают фотки по 20-25Мб, а для сайта достаточно разрешения 800х600.
Ресайз на клиенте нужен для экономии времени и трафика, а что экономит пережимка на сервере?Пережимка на сервере ничего не экономит, но она сохраняет качество изображения
Если нужно мега-качество, то просто отключи пережимку на клиенте.Мега-качество вовсе не нужно. Достаточно обычного разрешения 800х600.
К примеру если пережимать фотки с последнего айфона через plupload, то он пипец что с ними делает.
                Недавно обнаружил, что просто добавляя условие
                    $id = $this->getProperty('id', @$_GET['id']);
	if (!$resource = $this->modx->getObject('modResource', $id)) {
		return $this->modx->lexicon('ms2gallery_err_no_resource');
	}
if ($resource->template == 6) { 
$options = [
	//'w' => 120,
	'h' => 600,
	'q' => 90,
	'f' => 'jpg'
];
}можно для разных шаблонов ресурсов делать разные размеры исходных изображений.            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.