Елена Б.
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, при текущих ценах на хостинг даже думать не нужно
Роман Беляев
16382 сообщения
#11 лет назад
[quote=micros] Нечего сказать?[/quote]Есть. Причем по делу.
Сергей Глушко
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 '{}' \;
Павел Л.
116 сообщений
#11 лет назад
формат Gif, имхо, самый оптимальный для таких схем.
Оригинал - - 80К
Гиф - - 26К