WEBP и альфа-канал: что выживает при конвертации
Только один формат вывода в этом наборе сохраняет прозрачность: PNG. Сконвертируйте прозрачный WEBP во что-то другое — и пустые пиксели заполнятся выбранным вами цветом; это либо ровно то, что вы хотели, либо единственное, что стоит проверить заранее.
WEBP — не один формат. Это контейнер, который хранит либо картинку с потерями, либо без потерь, либо анимацию — и любой из них может нести прозрачность. Эта гибкость и позволяет WEBP лежать на веб-странице вчетверо легче PNG и всё же чисто показывать вырезанный логотип. Когда программа отказывается его открывать, проблема в поддержке, а не в картинке.
Что делает конвертер, по порядку
- Файл декодируется во вкладке вашего браузера, в полном разрешении.
- Декодированная картинка рисуется на canvas того размера, который вы задали.
- Для каждого целевого формата, кроме PNG, canvas сначала заливается цветом фона, прежде чем на него ложится картинка.
- Результат кодируется заново — как PNG без настроек качества, как JPEG или WEBP на уровне качества с ползунка.
- Файл записывается в ваши загрузки; ни на каком этапе ничего не загружается на сервер.
Заливка фона — та часть, которую стоит перечитать дважды. Она происходит для 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 с той же настройкой добавляет ещё одно поколение ко всему, что файл уже нёс.
Ограничения
- 64 MB на файл, проверяется до декодирования файла.
- Стороны результата не могут превышать 20,000 px.
- Изменение размера может идти от 1% до 400% от оригинала или до точного размера.
- За один проход можно поставить в очередь до двадцати файлов.
- Метаданные не копируются в новый файл: результат — только что закодированная картинка.
Коротко
- PNG — единственный формат вывода, сохраняющий прозрачность; всё остальное сплющивается.
- Палитра цвета фона решает, чем становятся прозрачные пиксели — по умолчанию белым.
- Качество начинается с 92 для форматов с потерями и ничего не делает для PNG.
- Конвертация происходит во вкладке; файл никогда не загружается на сервер.
Вопросы
Останется ли мой прозрачный WEBP прозрачным?
Только если вывод — PNG. Для целей JPEG и WEBP canvas сначала заливается цветом фона, поэтому прозрачные пиксели смешиваются с ним до кодирования.
Почему PNG больше WEBP?
Потому что WEBP сжимает — с потерями или без, — а PNG хранит каждый декодированный пиксель без потерь. Фотография, сконвертированная в PNG, часто в несколько раз больше.
Влияет ли ползунок качества на вывод PNG?
Нет. PNG по определению без потерь, поэтому конвертер кодирует его без настройки качества; ползунок применяется только к JPEG и WEBP с потерями.