2026 Mac: матрица доставки дизайна — WebP→PNG (откат с потерями, прозрачный канал, sRGB) и чеклист порогов объёма на удалённом M4

Для кого: дизайнеры, ответственные за поставку ассетов и инженеры пайплайна, которым прилетает WebP от подрядчиков или автоматики, а контракт снизу требует PNG — CMS, пресса «рядом с вебом», легаси-клиенты. Задача страницы: не «нажать экспорт», а зафиксировать матрицу решений 2026: когда транскод уместен, что невозможно восстановить из lossy WebP, как защитить альфу, как закрепить sRGB и как на удалённом Mac mini M4 проверять пороги байтов так, чтобы QA было воспроизводимым, а не одним скриншотом в мессенджере.

Содержание

Почему WebP→PNG — это политика, а не кнопка

  1. Lossy WebP необратим. Декод сохраняет геометрию, но не возвращает отброшенные детали; часто виноватим объявляют PNG, хотя источник уже был «восковым».
  2. Семантика альфы. Прямая против премультиплицированной ломает мягкие кромки; тихое схлопывание в RGB убирает прозрачность без записи в журнале.
  3. ICC «гуляет». Без строки в README Safari, Chrome и Figma на широком охвате дают разные ответы — особенно если мастер не sRGB.
  4. Объём требует гейтов. Лимиты stat, манифест с sha256 и версиями dwebp/magick удобнее гонять на выделенном удалённом Mac, чем на ноутбуке с сном и плавающими термиками.

Общую стратегию WebP/AVIF/PNG сверяйте с чеклистом смешанной доставки WebP, AVIF и PNG; эта статья — узкий съезд с WebP на PNG по контракту.

Матрица: остаться в WebP, декодировать lossless PNG или ужать с потерями

Сигнал в исходном WebP Предпочтительная поставка Риск при «любом PNG»
Lossless WebP с альфой Декод в PNG32; политика ICC как у статичных мастеров Низкий по цвету — вырастут байты; планируйте хранение, а не «магию» профиля
Lossy WebP, фототекстура Переэкспорт из PSD/AF/TIFF; WebP только как превью Высокий — PNG не вернёт отсутствующие ВЧ-детали ни одним флагом
Lossy WebP, плоский UI с альфой Декод → при провале max_bytes узкий коридор pngquant Средний — полосы на градиентах; коридор качества должен быть в ТЗ
Анимация внутри WebP Отдельная политика WebP/APNG/GIF; один кадр PNG ≠ контракт на движение Высокий — смешение SKU «статика» и «моушн»

Правила sRGB и Display P3 согласуйте с чеклистом sRGB и Display P3. Декод сам по себе не «назначает честный ICC»; после промоушена в PNG не дублируйте полоску метаданных — см. гайд по ICC и lossless-пересжатию PNG.

Зафиксированные шаги: декод, цвет, откат с потерями

На воркере закрепите версии из Homebrew; в manifest.json пишите вывод dwebp -version и блок magick -version на каждую партию.

1) Lossless-декод (libwebp)

dwebp -mt input.webp -o decoded.png

По умолчанию — PNG с сохранением альфы. Флаг -alpha_dither включайте только если осознанно сглаживаете квантованную альфу и принимаете шум по прозрачности. Для отладки каналов удобен -pam.

2) ImageMagick 7: явный тип и sRGB

magick input.webp -colorspace sRGB PNG32:handoff.png

PNG32 — RGBA; PNG24 только если альфа доказано отсутствует (проверка через identify).

3) FFmpeg для нестандартных контейнеров (один кадр)

ffmpeg -y -i input.webp -frames:v 1 -c:v png -pix_fmt rgba frame.png

Для последовательностей и FPS используйте отдельный конвейер, не смешивайте с ручной сдачей «одного кадра».

4) Откат с потерями внутри записанного коридора

pngquant --quality=70-85 --speed 1 --skip-if-larger -f -o handoff-q.png handoff.png

--skip-if-larger защищает от регресса по байтам; ветку фиксируйте в JSONL рядом с именем файла.

5) Инспекция перед выдачей в out/

magick identify -verbose handoff.png | egrep 'Geometry|Colorspace|Type|Properties:.*icc'

Падение сборки: обещали мягкую альфу, а получили палитру без промежуточных уровней; в README сказано «без ICC», а в файле неожиданный встроенный профиль.

Если в договоре стоит «только lossless PNG», lossy WebP как единственный мастер технически не выполняет пункт — запрашивайте исходник или cwebp -lossless для UI-хрома.

Чеклист приёмки объёма на удалённом Mac M4

  1. Геометрия: декодированные WxH = спецификация ±0 px; даунскейл только если это явно разрешено брифом и залогирован масштаб.
  2. Потолки байтов (ориентир при длинной стороне ≤1600 px): ≤ 350 KB «стройный» UI, ≤ 800 KB стандарт карточки, ≤ 1.6 MB герой — подстройте под CDN и зафиксируйте в README партии.
  3. Композит альфы: наложение на #FFFFFF и тёмный фон вроде #0B0D12 в целевом браузере; ореол по кромке — fail.
  4. sRGB: либо встроенный sRGB IEC61966-2.1, либо осознанное удаление профиля с одной строкой в README («ожидаем дисплейный sRGB») — без третьего варианта «как получится».
  5. Манифест: sha256 до/после, версии dwebp/magick/pngquant, pass/fail — в одном формате с остальными PNG QA на узле.

Пороги и параметры, которые можно вставить в ТЗ

  • Коридор pngquant: старт 70–85; для портретной графики при полосах сузить до 75–90.
  • Контроль источника WebP: для хрома UI — cwebp -lossless; первый lossy-пресет для согласований — cwebp -q 85 -alpha_q 100.
  • Гейт по размеру (macOS stat): test "$(stat -f%z handoff.png)" -le 800000 для потолка 800 KB — замените число на SKU.

Короткий FAQ

PNG раздулся после lossless WebP. На шумных фото WebP часто эффективнее — заложите хранение или разрешите согласованный pngquant.

Неон на одном мониторе. Превью вне тега и контракта sRGB; выровняйте просмотрщик и встроенный профиль.

Итог: матрица «источник → допустимый PNG» снимает споры, если рядом лежат альфа, sRGB, max_bytes и журнал версий на удалённом M4. Откройте macpng.com, раздел аренды и покупки, страницу тарифов и узлов и помощь по SSH и VNC — сравнить планы можно без входа в аккаунт. Другие материалы — в разделе Технические идеи.

Удалённый Mac M4 · растровая приёмка

Вынесите WebP→PNG на стабильный воркер

Одинаковые флаги декодирования, правила ICC и проверки max_bytes по каталогам, пока дизайнер остаётся в Figma локально.

Главная Арендовать / купить Тарифы и узлы Помощь и SSH/VNC
WebP→PNG на M4 Матрица и байтовые гейты
Арендовать