Фото с iPhone — 3–6 МБ. Скриншот рабочего стола — 2–4 МБ. PNG «чтобы не потерять качество» — часто 8 МБ. Умножьте на портфолио, блог, переписку — и вы шлёте сотни мегабайт за картинки, которые не отличить от версии в 500 КБ.
Сжатие изображений закрывает этот разрыв. Zebra запускает MozJPEG, Oxipng и libwebp прямо в браузере через WebAssembly. Файл остаётся на устройстве. Большинство фото получаются на 60–90% меньше без видимой потери качества.
Три шага
- Откройте компрессор изображений.
- Перетащите JPG, PNG или WebP (до 25 МБ).
- Выберите 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 q | WebP q | Oxipng | Экономия |
|---|---|---|---|---|
| Light | 88 | 88 | 2 | 30–50% |
| Medium | 78 | 78 | 4 | 60–80% |
| Strong | 65 | 65 | 6 | 80–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 в низком качестве), и отдаёт оригинал вместо имитации сжатия.