← Назад в блог

Сжать скриншоты без размытия текста (что действительно работает)

Вы делаете скриншот — отчёт об ошибке, странное сообщение, чек, кусок кода, который хотите показать другу — и стоит вставить его куда-то, он выглядит… мягким. Размытым. Словно кто-то слегка намазал буквы вазелином. Вы всё равно отправляете его. «Можешь прислать почище?», — говорят вам.

И вы делаете то, что советует интернет: открываете, нажимаете «Сохранить как», выбираете JPG, ведь JPG уменьшает файл, верно? А в итоге текст стал хуже, а файл почти не уменьшился. Добро пожаловать в самое неправильно понимаемое свойство скриншотов.

Вот что никто не объясняет: скриншот — это не фотография. Фотография — это миллион мелких градиентов: небо, кожа, тени — и JPEG создавали именно под это. Скриншот — это текст и плоские цвета. Чёткие края повсюду. JPEG ненавидит чёткие края. Встречая строку текста, он вынужден её приблизить, и это приближение вы видите как размытие и эти светящиеся ореолы вокруг букв. PNG же сохраняет эти края точно. Поэтому ваш скриншот выглядел идеально как PNG и «кашей» как JPG.

Мне надоело гадать — я решил измерить по-настоящему. Я взял три реальных скриншота — редактор кода, окно настроек и терминал — и прогнал каждый двумя путями: правильным (сжатие палитрой / PNG8, тот же движок, что наш сжиматель изображений использует для PNG) и ленивым (экспорт в JPEG качества 70, какое по умолчанию ставят большинство приложений).

СкриншотИсходный PNGPNG8 (чётко)JPEG q70 (размыто)
Редактор кода175 КБ65 КБ122 КБ
Окно настроек48 КБ21 КБ57 КБ
Терминал69 КБ27 КБ74 КБ

Перечитайте колонку JPEG. Во всех трёх случаях «меньший» JPEG был не просто размытым — он оказался больше настоящего PNG8. У редактора кода JPEG вышел 122 КБ, почти вдвое больше 65 КБ версии PNG8, а текст внутри будто побывал в стиральной машине. Версия PNG8 меньше и каждый символ совпадает с оригиналом пиксель в пиксель.

Сложите их — и получается быстро. Двадцать скриншотов вроде этих в сыром виде занимают около 1,9 МБ и сжимаются примерно до 800 КБ как PNG8 — всё ещё чёткие, теперь достаточно маленькие, чтобы бросить в любой тикет или документ, не думая дважды.

Почему «Сохранить как JPG» — неверный рефлекс

Сжатие JPEG работает, выбрасывая детали, которые ваше зрение, якобы, не заметит на фото. На закате это сойдёт — вы бы не узнали. На строке текста 11-го размера это катастрофа, ведь текст — это именно то, что самое детальное и контрастное, а с этим JPEG справляется хуже всего. Кодировщик округляет эти края, вы получаете размытие, и поскольку скриншоты — в основном плоские цвета (которые PNG сжимает отлично), файл JPEG часто оказывается больше PNG, с которого вы начинали. Вы теряете качество и ничего не получаете взамен.

Единственное исключение: если ваш «скриншот» — на самом деле кадр из видео или 3D-сцены, что-то с плавными градиентами, — для этих частей подойдёт JPEG или WebP. Но текстовые подписи поверх всё равно остаются чётче как PNG. Значит, безопасное правило всегда одно: держите его как PNG, просто сожмите PNG правильно.

Что действительно работает: сжатие PNG8 (палитра)

PNG8 берёт цвета изображения и упаковывает их в небольшую палитру — 256 или меньше — и перезаписывает изображение, используя только их. Для скриншота, который обычно использует горстку цветов, визуально это почти не меняется. Цвет текста становится записью в палитре — он выходит точным. Файл уменьшается, потому что вы больше не храните миллионы избыточных пикселей в полной глубине.

Именно это делает наш сжиматель, когда вы бросаете PNG: он перекодирует его в оптимизированный PNG8 локально, в вашем браузере. Ничего не покидает ваше устройство.

Тот же скриншот редактора до сжатия (175 КБ) и после PNG8 (65 КБ): текст остаётся чётким до пикселя
Реальный скриншот: 175 КБ прямо из программы захвата, уменьшено до 65 КБ после PNG8. Никакого размытия, никакого ореола вокруг текста — просто меньший файл. Версия того же скриншота в JPEG весила 122 КБ и выглядела хуже.

Порядок, которым я пользуюсь

Вы потратите на чтение этого больше времени, чем на само действие:

  1. Соберите скриншоты, которые собираетесь отправить или опубликовать. Десять — норма для отчёта об ошибке или инструкции.
  2. Бросьте их в сжиматель — работает пакетно, не нужно по одному.
  3. Позвольте перекодировать их как PNG8. Вы не трогаете ползунок качества; сжатие палитрой сохраняет чёткость по замыслу.
  4. Скачайте и используйте. Они меньше, чёткие и чисто вставляются в Slack, тикет, документ или форму загрузки.

Если вы боретесь с жёстким лимитом загрузки — портал поддержки, который ограничивает один файл 20 КБ, скажем, — только сжатия палитрой может не хватить, ведь у скриншотов с текстом есть пол. Для таких слегка снизьте разрешение (меньший скриншот) и иногда примите лёгкое смягчение JPEG. Наш гайд по сжатию до 20 КБ разбирает именно этот случай, чтобы форма вас не отвергла.

Когда вам действительно нужен JPEG

Ничто из этого не значит, что JPEG плох. Для настоящих фотографий — снимков с телефона, камерного RAW, товарных изображений — он правильный выбор. Если вы шлёте пачку фото по почте, это другая проблема с другим решением (пережмите в JPEG качества 75, не в PNG). Я написал отдельный разбор о том, как вписать слишком большие фото в лимит почты, если это ваша боль.

Идея проста: подбирайте формат к изображению. Фото → JPEG. Скриншот → PNG8. Смешаете — и либо раздуете файл, либо размоете текст. Обычно и то, и другое.

Простой вариант

Вам не должно приходиться думать о палитрах и кодировщиках только ради того, чтобы отправить читаемый скриншот. Причина, по которой я построил этот инструмент, в том, что каждое «сжиматель»-приложение, что я пробовал, либо насильно переводило всё в JPEG (размытый текст), либо загружало ваши файлы на сервер (ни за что). Что работает: откройте страницу, бросьте скриншоты, скачайте меньшие чёткие PNG — готово, всё в браузере, ничего не загружено.

В следующий раз, когда кто-то ответит «можешь прислать почище?», вы будете знать: решение никогда не было «сохранить как JPG». Оно было «не дай ему стать JPG в первую очередь».

Уменьшите скриншоты, сохраните текст чётким

Бросьте свои скриншоты, позвольте перекодировать их как PNG8 и скачайте меньшие чёткие PNG. Бесплатно, в браузере, приватно: ваши файлы никогда не покидают устройство.

Сжать скриншоты бесплатно →
Об авторе: Chuan Независимый разработчик, уставший отправлять размытые скриншоты и видеть, как «сжиматель»-приложения потихоньку грузят его файлы на сервер. Построил CompactJPG, чтобы делать пересжатие PNG8 в браузере — текст остаётся чётким, а файлы не покидают устройство.