Уменьшить изображение для сайта может быть нужно с целью оптимизации скорости загрузки страниц ресурса. Доработка изображений является самой популярной рекомендацией Google Pagespeed Insights, чаще всего она заключается в уменьшении размера там, где это возможно.
Как уменьшить изображение для сайта в консоли Linux сервера
Некоторые сайты используют изображения размером в единицы и десятки мегабайт. Почти всегда это неоправдано и является одной из причин медленной загрузки страниц.
Выявив такие изображения можно уменьшить их размер, обычно двумя способами:
- скачать на компьютер, уменьшить в редакторе (Photoshop или GIMP), переименовать или удалить версию на сервере, закачать обратно
- изменять изображение прямо на сервере
Второй способ намного привлекательнее, поэтому будем использовать его. Потребуется пакет imagemagick, доступный в стандартных репозиториях Debian.
Устанавливаем пакет
apt-get update
apt-get install imagemagick
В состав пакета входит утилита convert, которая используется для конвертирования изображений. Она имеет очень большое количество опций и используется тем же GIMP
Самая простая операция, как раз, масштабирование.
Имея изображение pic.jpg указываем на него convert, далее нужны опции и имя файла на выходе.
convert pic.jpg -resize 90% pic.jpg
Если указать то же имя файла он будет перезаписан.
-resize 90% означает, что новое изображение будет иметь размер 90% от изначального.
В примере выше видно, что изначальный размер изображения с расширением .jpg 202 Кб, после того как выполнено изменение размера и файл перезаписан размер файла стал равен 171 Кб.
Можно без труда заскриптовать любые команды с convert, выполнять их в цикле и применять изменения к большому количеству изображений.
Подобное перезаписывание позволяет быстро изменить размер картинок, предварительно имеет смысл сделать копию на случай если качество получившегося изображения окажется недостаточным. Если потом так же увеличивать уменьшенное один раз изображение — будет заметная потеря качества.
Есть также утилиты, позволяющие изменять размер без потери качества.