Как бесплатно уменьшить вес большого количества картинок?
На сайте очень много картинок (приблизительно 25 тысяч. Это крупный интернет-магазин). Нужно как-то уменьшить их размер, потому что они занимают много места.
Мне нравится, как это делает Tinypng. Но бесплатная версия не подходит для такого большого количества картинок.
Я пробовал программу FastStone (там есть пакетная обработка), но она меняет регистр расширения файла (jpg, png...) - можно выбрать, либо менять на маленький, либо на большой. А оставить тот, который был, нельзя (может, у меня некоторые картинки с большим регистром, а некоторые - с маленьким. Может, вообще с разным регистром, например: .Jpg).
На Windows регистр не имеет значения. А вот на Linux имеет. И после пережатия картинок может возникнуть такая ситуация, что папка с картинками станет даже тяжелее, т.к. картинок стало больше.
Пробовал XnConvert, менял степень сжатия (ставил на максимум). Вес картинки если и уменьшался, то незначительно. А иногда даже увеличивался. Как я понял, поставить условие - если вес увеличился, то не сохранять картинку, нельзя. Да и зачем мне такая программа, если она практически не уменьшает вес.
Можно через XnConvert сначала пакетно уменьшить размер, а потом увеличить. Картинка будет весить меньше. Но, по-моему, это костыль, из-за которого картинка может стать размазанной. Tinypng как-то иначе работает.
Какой программой воспользоваться, чтобы бесплатно уменьшить вес такого большого кол-ва картинок?
Имхо, было бы быстрее и надёжнее на той же ноде (или на чём тебе удобнее) написать за час-два (с учётом поиска пекеджа и эксперементов) скрипт для конвертации, чем кучу времени убить на обкат различных приложух.
А в webp конвертировать, потом в базе расширение поменять, не вариант? Ну или расширение не менять, а в заголовке указывать формат webp… ток возможны, наверное, ошибки в некоторых ОС или браузерах.
А есть пример готового скрипта? Или класс какой-нибудь. Где можно легко указать, насколько процентов пережать картинку. Можете кинуть ссылку на github?
вставлю 5 копеек, чтобы уменьшить вес картинок на сервере:
1) уменьшить не столько качество, сколько размер сторон.
2) всё переводить в jpg - и неважно что там были с другим регистром, типа Jpg или с другим разрешением типа png: в базе переписать массово все ссылки на jpg, остальное удалить и норм будет только одна копия картинки в нужном формате.
3) сжимать можно чем угодно, я лично в jpg между разными программами (тщательно тестировал более 10 штук) разницы практически не заметил, да было пару программ - жали лучше других, но не умели сохранять структуру папок и один файл обрабатывали по полдня. Так что я жму ImBatch, простая бесплатная прога, на русском, шустрая, куча настроек, жмет на 4 из 5, если ставить 70-73 % качество и убирать exif. Главное для меня - она полностью сохраняет структуру папок, то есть можно скачать на локал, оптимизировать, проверить сколько стала занимать папка с картинками и если норм, то закачать обратно. Как жать прямо на сервере не знаю, потому не предлагаю, именно локалом пользуюсь, 25000 картинок это не так уж и много, довольно быстро качаются и обрабатываются.
4) вообще забить на вес картинок - и либо выбрать хостера без ограничения по размеру шаред-хостинга, либо если свой сервер, то докупить у хостера hdd на террабайт, он стоит обычно сейчас совсем недорого.