На прошлой неделе пришла папка: 312 фото товаров размером от 800 × 800 до 5472 × 3648, вперемешку JPG, PNG и несколько файлов HEIC. Маркетплейс требовал JPG 1600 × 1600 до 2 МБ. Другая версия той же работы — перенос блога: двести иллюстраций в PNG нужно перевести в WebP с шириной не более 1600. Задачи выглядят разными, а конвейер у них один.

Почему отдельные проходы портят качество

Интуитивно хочется взять три инструмента подряд: изменить размер и скачать, конвертировать и скачать, сжать и скачать. Каждый умеет работать с пачками, но каждый ещё и перекодирует файл на выходе. JPG — формат с потерями: при каждом кодировании часть информации выбрасывается, и после трёх кругов при увеличении на краях заметны блочность и цветная кайма.

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

Сравнение качества: три отдельных прохода через разные инструменты и один проход конвейера
Одно и то же изображение после трёх перекодирований (слева) и после одного (справа)

Сценарий первый: 300 фото товаров для маркетплейса

Задача: 1600 × 1600, JPG, до 2 МБ, название магазина справа внизу. Шаг за шагом:

  1. Размер: «Заполнить» 1600 × 1600. Широкие и высокие изображения сначала масштабируются так, чтобы только-только покрыть этот квадрат.
  2. Кадрирование по пропорциям: 1:1. Всё, что выходит за пределы квадрата, срезается по центру; фото товаров с предметом посередине это не затрагивает.
  3. Водяной знак: включён, текст — название магазина, справа внизу, размер 4 процента, непрозрачность 50 процентов.
  4. Вывод: JPG, качество 85, имена файлов — «Переименовать в имя-001», в качестве префикса артикул или категория.

На обычном ноутбуке 312 изображений обрабатываются за три-четыре минуты и получаются по 200–600 КБ — это сильно ниже лимита в 2 МБ. Исходники HEIC читаются напрямую, отдельный круг конвертации не нужен. ZIP-архив выходит с аккуратной сквозной нумерацией имён и готов к загрузке без переименования.

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

Сценарий второй: галерея блога, переведённая в WebP

Задача: все иллюстрации в WebP, ширина не более 1600, скриншоты остаются чёткими. Проще первого сценария:

  1. Размер: «Ширина» 1600 при выключенном «Разрешить увеличение». Всё, что уже уже, остаётся нетронутым.
  2. Вывод: WebP, качество 80.
  3. Имена файлов: оставить исходные. Тогда в записях меняется только расширение — .png на .webp.

Двести PNG, обработанные так, обычно теряют более 70 процентов веса. Следить стоит лишь за логотипами и значками с прозрачным фоном. WebP поддерживает прозрачность, а конвейер сохраняет альфа-канал, так что здесь всё в порядке; но будь целевым форматом JPG, прозрачные области залились бы белым, и такие файлы лучше оставить в PNG.

Затем загрузите два результата в Конвертер изображений и посмотрите, как они ведут себя в старом браузере, — недорогая страховка.

Заполнить, вписать или длинная сторона?

Режим изменения размера — настройка, в которой ошибаются чаще всего. Каждый из трёх распространённых режимов подходит для своей ситуации:

  • Длинная сторона: важно только, чтобы изображение не было слишком большим, а пропорции не имеют значения. Картинки для блога и общие альбомы.
  • Вписать в Ш × В: изображение целиком должно поместиться в рамку без обрезки, поэтому одна сторона может оказаться короче. Миниатюры и слайды.
  • Заполнить Ш × В: рамка должна быть закрыта целиком, лишнее срезается. Изображения для маркетплейсов, аватары и карточки с фиксированными пропорциями — обычно в паре с кадрированием по пропорциям.

Простое правило: если площадка пишет «не более N пикселей», берите «Длинную сторону» или «Вписать». Если требуется «ровно Ш × В» — «Заполнить».

Две проверки перед запуском

Во-первых, посмотрите живой предпросмотр. Конвейер показывает первое изображение со всеми текущими настройками: положение водяного знака, не режет ли кадрирование предмет, нет ли сдвига цвета — всё видно с первого взгляда. Убедитесь и нажимайте «Обработать все». Не стоит обнаруживать после 300 файлов, что название магазина легло прямо на товар.

Во-вторых, сохраните исходники. Конвейер никогда не меняет ваши исходные файлы, но перекодированные результаты не несут ни EXIF, ни данных съёмки, поэтому убедитесь, что оригиналы лежат в надёжном месте, прежде чем скачивать ZIP. Для фото, которые должны лишиться данных о местоположении, это достоинство; см. что такое метаданные EXIF и зачем их удалять.

Пакетное изменение размера и конвертация сводятся к одной фразе: настроить один раз, прогнать всю пачку и ни разу не обращаться к диску между шагами. Всё остальное — выбор из трёх режимов изменения размера и двух выходных форматов.