Фото с iPhone — 3–6 МБ. Скриншот рабочего стола — 2–4 МБ. PNG «чтобы не потерять качество» — часто 8 МБ. Умножьте на портфолио, блог, переписку — и вы шлёте сотни мегабайт за картинки, которые не отличить от версии в 500 КБ.

Сжатие изображений закрывает этот разрыв. Zebra запускает MozJPEG, Oxipng и libwebp прямо в браузере через WebAssembly. Файл остаётся на устройстве. Большинство фото получаются на 60–90% меньше без видимой потери качества.

Три шага

  1. Откройте компрессор изображений.
  2. Перетащите JPG, PNG или WebP (до 25 МБ).
  3. Выберите Light, Medium или Strong, нажмите Сжать, потом Скачать.

Фото в 4 МП обрабатывается примерно за 2 секунды на Mac. 12 МП — за 4–6 секунд. На мобильном Safari добавьте пару секунд. Если нужно сжать документ, а не картинку — есть отдельный гайд по сжатию PDF.

Почему фото получаются большими

  • Разрешение. Фото 4032×3024 с iPhone — это 12,2 миллиона пикселей. В сыром виде это ~50 МБ. JPEG сжимает до ~4 МБ, но можно срезать ещё 60% более умным кодером и чуть меньшим качеством.
  • Формат. PNG хранит каждый пиксель без потерь. Это правильно для скриншотов с резким текстом или иконок с прозрачностью. И неправильно для фото — вы тратите 4 МБ на кодирование шума, который JPEG спокойно отбрасывает.
  • Качество кодера. Браузерные JPEG-кодеры консервативны. MozJPEG (то, что использует Zebra) применяет trellis-квантование и прогрессивные сканы и стабильно даёт на 10–20% меньше при том же качестве.
  • EXIF-метаданные. GPS-координаты, модель камеры, объектив, полная история правок. Иногда полезно, чаще — сотни лишних килобайт. Zebra по умолчанию убирает EXIF при перекодировании.

Три кодека Zebra

Zebra выбирает кодек по формату и содержимому:

  • MozJPEG — для JPEG и для PNG-без-альфы в auto-режиме. Форк libjpeg-turbo от Mozilla с trellis-квантованием, который стабильно обгоняет браузерные кодеры и «Save for Web» в Photoshop на 10–20% при том же качестве.
  • Oxipng — для PNG с реальной прозрачностью. Lossless-оптимизация DEFLATE с несколькими проходами фильтров. PNG-иконка на 1 МБ обычно становится 700–800 КБ; данные идентичны, просто плотнее упакованы.
  • libwebp — для WebP. WebP уже эффективен, но повторное кодирование с целевым качеством даёт ещё 20–40%.

Все три кодека скомпилированы в WebAssembly через проект jSquash. Они работают полностью во вкладке браузера — без сервера, без загрузки, без телеметрии.

Auto-режим: PNG → JPEG, когда это безопасно

Большинство «PNG» на самом деле не должны быть PNG. Люди сохраняют фото в PNG думая «без потерь = лучше», и получают файл на 4 МБ там, где JPEG на 400 КБ выглядел бы идентично.

Zebra проверяет каждый перетащенный PNG: если альфа-канал полностью непрозрачен (нет прозрачности), файл пересохраняется в JPEG. Это выигрыш в 5–10 раз для фото-PNG без видимой разницы. Если у PNG есть реальная прозрачность (UI-макет, иконка, стикер), он остаётся PNG — Oxipng пересохраняет его, не трогая альфу.

Выбирать не нужно. Перетащите файл. Мы выбираем правильный путь.

Light, Medium, Strong

РежимJPEG qWebP qOxipngЭкономия
Light8888230–50%
Medium7878460–80%
Strong6565680–95%

Light при q=88 визуально неотличим от оригинала на нормальном экране. Используйте для фото, которые будут печатать или увеличивать, или просто чтобы убрать метаданные и слегка ужать кодирование.

Medium при q=78 — по умолчанию. Достаточно резкое для печати A4, неотличимо на Retina и мобильных. Выбирайте, если нет конкретной причины не выбрать.

Strong при q=65 — заметные артефакты на плоских областях (небо, стены), если увеличить 200%+, но идеально для email, веба и чатов, где размер важнее, чем «разглядывание пикселей».

Почему ничего не уходит с устройства

Большинство бесплатных компрессоров — TinyPNG, Compressor.io, ImageOptim Online — загружают файл на сервер. У этой модели реальные минусы:

  • Ваше фото оказывается на чужом диске. Даже с обещанием «удалим через 24 часа» окно хранения существует. Для фото документов, скриншотов приватной переписки и проприетарных материалов это не то окно.
  • Двойной трафик. Туда и обратно. На мобильном это и есть медленная часть.
  • EXIF-метаданные идут с файлом. GPS-координаты с телефона зашиты в JPEG. При загрузке сервер тоже их видит.

Zebra запускает MozJPEG, Oxipng и libwebp как WASM-модули в браузере. Изображение декодируется, перекодируется и пересобирается локально. Без сетевых запросов. Если отключить Wi-Fi после загрузки страницы, сжатие всё равно работает.

JPG, PNG или WebP — что выбрать

Короткое дерево решений для сохранения (после сжатия):

  • Фото реальной сцены, прозрачность не нужна? JPEG. Качество 78–85 хватает на всё, кроме печати.
  • Фото с прозрачностью (редко — обычно это вырезка)? WebP, если аудитория на браузерах 2022+. PNG как безопасный фолбэк.
  • Скриншот UI, иконка, лого, любая графика с резким текстом? PNG. Кольцевые артефакты JPEG вокруг текста — это уродливо и неисправимо.
  • Анимация? WebP (или GIF для совсем старых клиентов). Анимированный PNG тоже работает, но поддержка местами хромает.
  • Современный веб с полной поддержкой? WebP для всего. AVIF — когда Zebra его добавит.

Когда НЕ нужно сжимать

  • Мастер-файлы для редактирования. Храните оригиналы в полном качестве. Сжимайте копии. Если цель — вписаться в формат соцсетей, иногда правильнее обрезать фото, а не понижать качество.
  • Уже мелкие файлы. Меньше 200 КБ обычно не имеет смысла — оверхед перекодирования съест выигрыш.
  • Скриншоты с резким текстом. JPEG-артефакты испортят текст. Оставайтесь в PNG с Oxipng (Zebra делает это автоматически для скриншотов с прозрачностью).
  • То, что будут печатать на A3 и больше. Только Light или вообще без сжатия.

Zebra сама определяет, когда перекодирование делает файл больше (уже оптимизированные PNG, мелкие JPEG в низком качестве), и отдаёт оригинал вместо имитации сжатия.

Частые вопросы

Это бесплатно?
Да. Без водяного знака, без регистрации для обычного использования. Анонимные посетители — 2 сжатия в день; авторизованные — 3; премиум — без ограничений.
Фото загружается на сервер?
Нет. Сжатие в браузере через WebAssembly-кодеки (MozJPEG, Oxipng, libwebp через jSquash). Файл не покидает устройство.
Какой максимальный размер?
25 МБ на одно изображение. Хватает на большинство фото с телефона (12-МП JPEG — обычно 3–6 МБ) и экспорты из mirrorless-камер.
Качество падает?
Light (q=88) визуально неотличим от оригинала. Medium (q=78) — по умолчанию, незаметно на экране и соцсетях, резко на печати. Strong (q=65) — для email и веба, где размер важнее.
Работает на iPhone Safari?
Да. Safari на iOS 16+ запускает WASM-кодеки. Фото 10 МП сжимается за 2–4 секунды на iPhone 13+.
Можно сжать пачку?
Пока по одному. Пакетная обработка в планах.
Почему мой PNG так уменьшается в JPEG?
PNG без потерь — он плохо сжимает фотографические данные. PNG на 4 МБ часто превращается в 400 КБ JPEG без видимой потери. Zebra определяет PNG без реальной прозрачности и автоматически конвертирует их в JPEG. PNG с настоящим альфа-каналом остаются PNG (пересохраняются Oxipng).
Почему пока нет AVIF?
AVIF лучше сжимает, но кодирование в WASM медленное (в 5–10 раз медленнее MozJPEG). Лучше быстрый инструмент, которым вы реально пользуетесь, чем медленный с чуть меньшим файлом. AVIF в планах.
EXIF убирается?
В основном да — перекодирование через MozJPEG/libwebp убирает EXIF по умолчанию. Это побочный эффект сжатия, но и приятный бонус для приватности.