Массовая конвертация изображений из PNG в JPG на Linux

В этой статье рассмотрим способ массовой конвертации изображений из формата PNG в JPG. С этой задачей часто сталкиваются интернет магазины, которые получают десятки тысяч изображений товаров в PNG от поставщиков. Но этот формат неэкономный. И в среднем такие изображения товаров занимают в 20-50 раз больше места, чем в формате JPG.

Цель конвертации заключается не только в экономии места на хостинге, но и в ускорении загрузки страниц сайта. Ведь чем меньше размер контента, тем быстрее он будет передан пользователю по интернету.

Все действия в статье будем проводить на дистрибутиве Linux, с установленным пакетом ImageMagic. Этот пакет можно установить как на сервере, так и на персональном компьютере.

Массовая конвертация в JPG

Для массовой конвертации изображений необходимо открыть консоль (или подключиться к серверу по ssh) и перейти в папку, выше которой конвертация всех вложенных изображений. Изменениям подвергнутся все изображения, вне зависимости от вложенности папок. Для запуска процесса нужно выполнить команду:

find . -name "*.png" -exec mogrify -background white -flatten -format jpg {} \; -exec rm -v {} \;

Эта команда найдёт все файлы, которые лежат в текущей папке (и во всех вложенных) и у которых название оканчивается на ".png". Затем адреса этих файлов будут переданы команде "mogrify" для преобразования их в ".jpg". А в конце исходные файлы ".png" будут удалены. Разберём подробнее части этой команды:
  • find . -name "*.png" -exec mogrify ... {} - находит все файлы с расширением ".png" (пути к ним содержатся в {}). Ключ exec вызывает команду "mogrify", передавая ей путь к каждому найденному файлу.
  • mogrify -background white -flatten -format jpg {} - эта команда форматирует изображение по адресу {} в "jpg". Параметр "background white" говорит о том, что если в "png" будет использоваться прозрачные пиксели, то они будут заменены на белые (без ключа "flatten" не работает). Ключ "format jpg" указывает на изменение формата файла именно в "jpg".
  • -exec rm -v {} \; - удаляет сходный файл "png". Если не сделать это, то рядом с "png" файлами останутся "jpg" копии.

Адреса файлов в базе данных

Обратите внимание, что после изменения форматов изображений сменятся их названия (в конце файлов было "png", стало "jpg"). Поэтому если ссылки на файлы были занесены в базу данных, то они станут неактивными. Это можно исправить с помощью SQL запроса или через phpMyAdmin, заменив все вхождения ".png" на ".jpg" в нужных таблицах и столбцах.
UPDATE таблица SET столбец = REPLACE(столбец, '.png','.jpg');
В этом SQL запросе необходимо заменить "таблица" и "столбец" на существующие в проекте.

Уменьшение размера и качества

Зачастую поставщики присылают интернет магазинам изображения продукции в "png" формате с огромными размерами. К примеру, 5 000 на 5 000 пикселей. Даже после конвертации в "jpg" разумно будет уменьшить геометрический размер этих картинок хотя бы до формата FullHD. И снизить качество до 70%, чтобы ещё в два раза уменьшить размер файлов без заметной потери качества. Всё это можно сделать автоматически. Читайте об этом в нашей статье "Массовая оптимизация JPG изображений".
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб

⇡ наверх