Обработка загружаемых снимков

 
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 330
Обнаружил не совсем правильную работу движка при обработке загружаемых фотоизображений.
Например, такой в общем-то небольшой по размеру снимок - 594 x 446 пикселей , (Средний размер, получившийся при загрузке снимка пользователем), весит 260 (!!!) килобайт, что очень много для такого размера снимка.
Обработка загружаемых снимков


После стандартной обработки снимка размер уменьшился в 10 раз и стал 27 килобайт, что в общем-то, нормально для такого размера снимка (можно, конечно, чтобы вес был чуть больше - немного перестарался - искажения попёрли - видно невооружённым глазом)):
Обработка загружаемых снимков

Нормальный вес для такого размера изображения должен быть в пределах 35-40 килобайт. Допускаю ещё -60. Но это максимум.
Причем, при загрузке ужимать изображения, при обработке сервер ЗНАЧИТЕЛЬНО увеличивает вес снимков.
Вопрос знатокам:
Как настроить движок для с целью получения адекватного веса при обработке сервером загружаемых снимков?
Редактировалось: 2 раз (Последний: 15 июня 2009 в 19:01)
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 504
Находим в файле includes/graphic.inc.php строку
Код PHP:
  1. function img_resize($src, $dest, $maxwidth, $maxheight=160, $is_square=false, $watermark=false, $rgb=0xFFFFFF, $quality=100)
Правим переменную $quality по желанию.
ИМХО наиболее оптимальное соотношение размер качество в пределах 85-90
Редактировалось: 1 раз (Последний: 15 июня 2009 в 20:25)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 146
Maximov, спс, полезная инфа.

Функция img_resize(): генерация thumbnails
Но как я понял, это относится к создаваемым превьюшкам? а не к самим создаваемым т.н."средним" фото, которые показываются сайтом.

а вот можно ли поставить ограничение на "вес" загружаемых изображений? а то нынче часто прямо с нынешних монструозных фотоаппаратов грузят crazy
Настройка "удалять оригиналы после загрузки" относится к общим фотоальбомам, в личных фотоальбомах оно не работает...


Еще хорошо бы знать, где изменить размер создаваемой дивжком "medium" фотографии в фотоальбомах пользователей? хотелось бы сделать чуть больше мизерных примерных ~500 на 400, ~800 на 600 куда лучше.

PS. понимаю что сей вопрос вообще то к разработчикам.. однако пока их нет.. Может быть Вы что-нибудь навскидку про размеры подскажете?
Редактировалось: 1 раз (Последний: 16 июня 2009 в 01:08)
VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 330
Maximov, Спасибо!
Очень полезная информация, нужная всем.
Maximov:
ИМХО наиболее оптимальное соотношение размер качество в пределах 85-90
А не многовато? Наверное, всё-таки можно поменьше- достаточно будет 50-70. Особенно для средних копий увеличенного размера, от 640 х 480 и бОльших.
Предлагаю поэкспериментировать со значением $quality=хх , чтобы опытным путём вывести значения для различных размеров изображений. И какое-то усреднённое значение было уже изначально в дистрибутиве.
LG:
хотелось бы сделать чуть больше мизерных примерных ~500 на 400,  ~800 на 600 куда лучше
Стандартный размер 640 х 480 для пользователей был бы, наверное, в данном случае оптимальным.
Вес изображения можно компенсировать без заметного ухудшения той же переменной $quality=
Для своих лично альбомов можно даже задать значение ширины снимка =900. Неплохо смотрится!
Редактировалось: 1 раз (Последний: 16 июня 2009 в 01:33)
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 330
Для загружаемых изображений с размером средней копии 640 х 480 рекомендую выставить $quality=75
И вес снимка в пределах нормы, и качество получается очень приличным.
Если у Вас ширина средней копии установлена больше - 800, а то и 900 пикселей, я думаю это значение можно смело снизить до 70 без заметной потери качества
Редактировалось: 1 раз (Последний: 16 июня 2009 в 02:37)
Посетитель
small user social cms
Медаль
Сообщений: 146
да, для общих норм.
а вот как(точнее где бы в каком файле найти,сам пока не нашел) для "личных фотоальбомов" выставить другие размеры снимка -например те же 800x600.. scratch
VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года.
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 504
LG:
Но как я понял, это относится к создаваемым превьюшкам? а не к самим создаваемым т.н."средним" фото
Это относится и созданию medium фото тоже.

LG:
а вот можно ли поставить ограничение на "вес" загружаемых изображений?
Ограничение как бы есть в свойствах php - upload_max_filesize
Можно добавить свою проверку типа if (filesize(‘наш файл’)>500000) но прикол в том, что проверять он будет уже после того как загрузит.
Правильнее всего будет поставить какой-нить яваскрипт ,который будет проверять размер файла до загрузки на стороне клиента. А уже после контролировать размер на сервере.

СергейР:
А не многовато? Наверное, всё-таки можно поменьше- достаточно будет 50-70.
Качество картинки вещь субъективная, поэтому и написал четыре большие буквы ИМХО перед цифрами.

LG:
Еще хорошо бы знать, где изменить размер создаваемой дивжком "medium" фотографии в фотоальбомах пользователей? хотелось бы сделать чуть больше мизерных примерных ~500 на 400, ~800 на 600 куда лучше.
LG:
а вот как(точнее где бы в каком файле найти,сам пока не нашел) для "личных фотоальбомов" выставить другие размеры снимка -например те же 800x600.. scratch
Выставляется в свойствах фотоальбома.
Обработка загружаемых снимков
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 330
Maximov:
Выставляется в свойствах фотоальбома.
Да, но эти параметры можно выставить в Общем альбоме, либо в альбомах фотогалереи, созданных администротором.
А как выставить ширину средней копии =640 пикселей для пользовательских альбомов (сейчас размер средней копии в пользовательских альбомах по умолчанию 596 x 447 пикселей) ?
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 504
Файл components/users/frontend.php

Строка 1042
Код PHP:
  1. @img_resize($uploadphoto, $uploadthumb['medium'], 600, 600, false, $cfg['watermark']);
Редактировалось: 1 раз (Последний: 16 июня 2009 в 04:47)
Посетитель
small user social cms
Медаль
Сообщений: 146
Maximov, большое спасибо!
То самое искомое.

+ еще и во втором таком же выражении
Код PHP:
  1. @img_resize($uploadphoto, $uploadthumb2, 600, 600, false);
также изменил разрешение на всякий случай для симметрии:)) т.к. в ту же папку "медиум" сохраняет.
VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года.
Sometime CMS Community
Посетитель
no avatar
Сообщений: 19
Люди! Ну не работает у меня то, о чем вы здесь говорите. Специально правил значение xx на 10 и 100 ($quality=xx) После соответствующих изменений, заливал одно и тоже фото в фотоальбом с разными значениями хх. Размеры файлов одинаковые. Такое ощещение, что ничего не происходит. Меня инетерсуют качество фото в "medium", а не "thumbnails". И честно говоря, по коду в файле includes/graphic.inc.php не ясно, что там есть процедура по ресайзу в "medium"
PS Пользователи устали жаловаться на отвратительное качество "medium" фотографий :(
Редактировалось: 1 раз (Последний: 21 июня 2010 в 13:12)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.