Оптимизация изображений на сервере
6863 сообщения
#11 лет назад
Питаю слабую надежду, что есть готовое решение, но даже не могу объяснить гуглу, что мне надо - получаю только теорию. Есть сервер с диском на 100 гиг. На нем есть сайт, на сайте более 300 тыс (!) категорий с изображениями. Изображения эти занимают 80 гиг. Остается свободными 20 (цифры грубы, так как размерами остальных файлов и базы можно пренебречь)
Рядом на том же сервере делается новый сайт с упорядоченным контентом, в который переносится примерно 1/3 изображений. Места не хватает. Держа в уме вариант докупить место, все же, хочется найти способ решить задачу без расширения.
Дело в том, что изображения - это ч/б схемы. Пример ссылка. Тримминг и сохранение в пнг8 в оттенках серого уменьшает его в 2 раза. Если еще и вычистить ватермарк - можно сделать еще компактнее.
Наверняка есть инструменты, которые помогут прогнать эту задачу на сервере, не изобретая велосипед.
Нюанс: директория с фотками не читается, инструмент должен либо сам уметь это обходить, либо быть открытым, чтоб подружить его с БД, где имена файлов надо брать.
206 сообщений
#11 лет назад
Елена, попробуйте поискать по утилите командной строки imagemagick - ссылкаДля нее есть класс в php, можно использовать из консоли. Конкретный совет дать не смогу, но скорее всего решение в ней найдется.
А как затереть ватермарк я бы и сам с интересом узнал. Поделитесь потом рецептом, если будет время.
16382 сообщения
#11 лет назад
[quote=floppox]Держа в уме вариант докупить место, все же, хочется найти способ решить задачу без расширения. [/quote]Просто докупи место. Можно, конечно, налепить симлинков, но что-то мне кажется это не лучшим решением. А все потому, что лучшее решение - докупать места.
834 сообщения
#11 лет назад
floppox, ссылкаписал как то скрипт на php читал директорию и применял exec() Optipng и Jpegoptim
Докупать место - Не лучший вариант, во первых ежемесячные затраты, во вторых оптимизация картинок положительно скажется на скорости загрузки страниц, так как некоторые картинки оптимизируются до 90% без потери качества
16382 сообщения
#11 лет назад
micros, место придется докупать, насколько я понимаю, только на время переезда. Иначе держать дубли в любом случае тупо. Так что тут либо надо что-то менять в консерватории, либо вообще те копейки значения иметь не будут. Оптимизация размера сжатых изображений это очень часто потеря качество, которое вообще никак не вернуть, сколько места не докупай. Одна оптимизируется на 90%, а соседняя потеряет в качестве 90%. Просматривать все обработанные изображения? В общем испортить все достаточно просто, головняка вагон, затрат времени вагон, профит от минимального до сильно отрицательного. Не занимайтесь ерундой.
834 сообщения
#11 лет назад
Одна оптимизируется на 90%, а соседняя потеряет в качестве 90%не один и не два раза применял данные утилиты, ниразу не потерялось качество, они и предназначены для сжатия под веб, без потери качества=) пожете проверить работу таких утилиток на сайте ссылка
затрат времени вагон
да ладно=)
[code]$q = db_query("select `image` from `prod_image` "); // and `ID` = '79649'
while($res = mysql_fetch_assoc($q))
{
$simg = $res['prod_image'];
if (stristr($simg, "png")) {
exec ("optipng ".$simg); // Если png
} elseif (stristr($simg, "jpg"))
{
exec ("jpegoptim ".$simg); // Если jpg
}
}[/code]
Вот только что за 3 минуты написано=))))
16382 сообщения
#11 лет назад
micros, работать тоже будет три минуты, небось? [quote=micros] они и предназначены для сжатия под веб, без потери качества=) [/quote]Ага. Может еще из md5 хэша восстанавливают картинки, не?Простая арифметика подсказывает нам, что надо сжать 80Гб уже сжатых картинок до 50Гб. Без потери качества. Ага ага

834 сообщения
#11 лет назад
frig,md5 это тут причем? Нечего сказать? Про три минуты - проверьте. Про уже сжатые - не путайте обрзку изображений и их оптимизацию. Почитайте гугл page speed и рекомендации по поводу оптимизации картинок.
6863 сообщения
#11 лет назад
В моем случае от перевода в оттенки серого точно никто не пострадает, так как изображения и так чертежи. А результаты эксперимента я привела в начале - в два раза выигрыш в объеме.Утилиту еще не смотрела, займусь этим может даже не завтра, но, если она удаляет такие вещи, как артефактный невидимый фон в пнг, то потерь так же не будет.
3562 сообщения
#11 лет назад
[quote=frig]Просто докупи место. [/quote]+1, при текущих ценах на хостинг даже думать не нужно
834 сообщения
#11 лет назад
floppox, ссылка - исходник 79,353 кб
ссылка - после оптимизации advpng в extreme режиме 53,763
для PNG 38% - без тримминга, и как видим без потери качества
для jpeg картинок там все намного радужней
ссылка - исходник вашей картинки в формате jpg 72,769 кб
ссылка - результат утилиты jpegoptim /путь --strip-all -f -m50 -27,061 кб
без тримминга 62% сжатие, и опять незаметно по качеству, заметно становится при -m30 параметре
итого: минимум экономите из 80 гиг 25 гиг максимум 45 гиг - примерно=)
а и еще для PNG одна картинка сжатие примерно на одном ядре 2 ггц - 0,01 сек, для jpg - не считает но намного быстрей, потому что даже нету задержки выполнения команды=) очень быстро))
6863 сообщения
#11 лет назад
Спасибо. Обязательно опробую в работе. Но только сперва перенесу "хучу" записей в БД и дубли почищу, а уж потом картинки.
834 сообщения
#11 лет назад
floppox,я щас по проекту работаю оптимизации скорости работы сайта+) не думал оптимизировать картинки, там 3,3 гига=) но решил что не помешает, результат отпишу)floppox, и так первый скрин видно примерно уровень сжатия, использовал два параметра - "Удаление мета" и сжатие 50% - вот для общей картинки
[file]1367426[/file]
Второй скрин замер свободного места на диске было 3,5 стало 4,9 гига свободно, тоесть из 3,3 гиг картинок сжалось на 1,3 гига
[file]1367429[/file]
Итого 1,3 гига сжато из 3,3, 25 минут времени+)
find -name "*.jpg" -exec jpegoptim --strip-all -m50 '{}' \;





