Перейти к содержимому

WEBP и альфа-канал: что выживает при конвертации

Только один формат вывода в этом наборе сохраняет прозрачность: PNG. Сконвертируйте прозрачный WEBP во что-то другое — и пустые пиксели заполнятся выбранным вами цветом; это либо ровно то, что вы хотели, либо единственное, что стоит проверить заранее.

WEBP — не один формат. Это контейнер, который хранит либо картинку с потерями, либо без потерь, либо анимацию — и любой из них может нести прозрачность. Эта гибкость и позволяет WEBP лежать на веб-странице вчетверо легче PNG и всё же чисто показывать вырезанный логотип. Когда программа отказывается его открывать, проблема в поддержке, а не в картинке.

Что делает конвертер, по порядку

Заливка фона — та часть, которую стоит перечитать дважды. Она происходит для JPEG, для WEBP и для любого другого формата с потерями, потому что canvas не может хранить прозрачность, если формат не умеет её хранить. По умолчанию — белый; палитра рядом с ползунком качества меняет его. Если у вашего WEBP мягкие, полупрозрачные края — тень, нарисованный от руки контур — эти пиксели смешиваются с фоном, а не выбрасываются, поэтому тёмный фон может придать светлому логотипу вид каймы.

Две конвертации, две разные задачи

КонвертацияДля чегоЧто происходит с прозрачностью
WEBP в PNGОткрыть файл в программе, не знающей WEBPСохраняется — PNG хранит альфу.
WEBP в JPGФайл поменьше для места, принимающего только JPEGСплющивается на цвет фона.
JPG в WEBPСжать фото для вебаУ JPEG нет прозрачности, так что хранить нечего.

Контринтуитивное следствие: конвертация прозрачного PNG в WEBP в этом инструменте тоже сплющивает его, хотя формат WEBP может нести прозрачность. Canvas готовится одинаково для каждого не-PNG формата, поэтому безопасное правило простое — если прозрачность важна, заканчивайте на PNG.

Качество и почему значение по умолчанию сдвигается

JPEG и WEBP с потерями кодируются на уровне качества с ползунка, который начинается с 92. Это разумная середина: достаточно высоко, чтобы артефакты оставались невидимыми на фотографиях, и достаточно низко, чтобы заметно уменьшить файл. PNG кодируется без настройки качества, потому что PNG по определению без потерь — ползунок на него не влияет, как и цвет фона.

Поскольку каждая конвертация перекодирует картинку, качество может только теряться, но не прибавляться. Конвертация JPEG в WEBP при качестве 92 сохраняет видимый результат неотличимым в большинстве случаев; конвертация WEBP в JPEG с той же настройкой добавляет ещё одно поколение ко всему, что файл уже нёс.

Ограничения

Коротко

Вопросы

Останется ли мой прозрачный WEBP прозрачным?

Только если вывод — PNG. Для целей JPEG и WEBP canvas сначала заливается цветом фона, поэтому прозрачные пиксели смешиваются с ним до кодирования.

Почему PNG больше WEBP?

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

Влияет ли ползунок качества на вывод PNG?

Нет. PNG по определению без потерь, поэтому конвертер кодирует его без настройки качества; ползунок применяется только к JPEG и WEBP с потерями.

Инструменты в этой статье

Все статьи