Изображения и фотографии · Конвертер изображений и компрессор
Что происходит с прозрачностью при преобразовании PNG в JPEG
· Как это работает
форматы изображений прозрачность холст
JPEG не имеет альфа-канала, поэтому прозрачные пиксели должны стать чем-то во время преобразования, и правило браузера состоит в том, чтобы совместить их с черным. В этом посте объясняется альфа, этап композиции и то, как сохранить прозрачность, выбрав вместо этого WebP или PNG.
Вырез товара, превратившийся в черный квадрат — результат конвертации, который удивляет практически каждого с первого раза
Вырез продукта может вернуться из преобразования JPEG, окруженный сплошным прямоугольником. В этом инструменте этот прямоугольник не становится черным: план имеет цвет фона, панель с фокусом начинает его с белого цвета, а `renderPlan` заполняет весь холст перед рисованием растрового изображения. Таким образом, выходные данные отражают видимый выбор пользователя, а не недокументированный запасной вариант браузера.
Воспроизведите проблему с копией источника и обратите внимание на выбранную подложку. Если после выбора белого цвета появляется черный блок, сравните фактически загруженный файл с любым более поздним этапом обработки, прежде чем обвинять преобразование. Предупреждение ToolAcre включает цвет, расположенный за прозрачными пикселями, что делает план доступным для проверки до того, как кодировщик JPEG получит холст.
Удивительный сплошной прямоугольник может быть любым выбранным матовым; ToolAcre по умолчанию белый, а не черный
Прозрачность представлена на поверхности декодированного пикселя как непрозрачность наряду с цветом. В таблице форматов продукта записано, что выходные данные PNG и WebP поддерживают альфа-канал, а JPEG — нет. Это заявление о возможности кодирования: входной декодер также принимает GIF, но GIF предназначен только для декодирования и передает только один неподвижный кадр. Поддержка чтения и поддержка записи не должны сводиться в один список.
Значение альфа позволяет одному и тому же переднему плану сливаться с разными фонами страницы после экспорта. Как только пиксели выравниваются на подложке, эта гибкость исчезает, поскольку сохраненный JPEG содержит обычные непрозрачные цвета. Преобразование JPEG обратно в PNG создает контейнер с поддержкой альфа-канала, но он не может определить, какие пиксели ранее были прозрачными, или отделить их от выбранного фона.
Почему JPEG не может сохранять прозрачность — формат, созданный для фотографий, в которых нет понятия «здесь ничего»
Вывод JPEG не имеет альфа-канала в фактах формата ToolAcre, поэтому для полного вывода требуется цвет в каждом пикселе. План преобразования предоставляет этот цвет, и средство рендеринга рисует его по месту назначения до того, как будут отрисованы исходные пиксели. Этот порядок гарантирует, что полностью прозрачные области станут матовыми, а частично прозрачные границы будут сливаться с обычной композицией холста.
Выберите подложку в зависимости от того, где появится JPEG. Белая страница каталога предпочитает белый цвет; темный слайд отдает предпочтение его фактическому темному фону. Если фон назначения может измениться, JPEG будет неправильным результатом, поскольку решение будет принято слишком рано. PNG или WebP сохраняет альфа-канал доступным для более позднего макета.
Браузеры следуют правилам композиции — прозрачные области смешиваются со сплошным черным фоном перед кодированием JPEG в соответствии со спецификацией.
В книге композиция черного цвета описана как правило спецификации браузера, но реализация явно предотвращает случайную заливку, зависящую от браузера. `fillRect` использует `plan.background`, и панель отображает ввод цвета только в том случае, если в выбранном формате отсутствует альфа. Исправление имеет значение: сообщение пользователям о том, что черный цвет неизбежен, скроет элемент управления, созданный специально, чтобы избежать такого сюрприза.
Матовое поле не является декоративными метаданными. Он изменяет цвета пикселей, отправленные в JPEG, и его следует включать в воспроизводимую запись преобразования наряду с форматом и качеством. Скриншот только вывода может сделать намеренное темное матовое изображение искаженным. Захват плана объясняет, был ли прямоугольник взят из выбранного фона или из более позднего просмотра.
ToolAcre заполняет прозрачность выбранным пользователем фоном перед кодированием JPEG.
Мягкие сглаженные края содержат частично прозрачные пиксели, а не просто маску включения или выключения. Их окончательный цвет зависит от матового слоя под ними во время композиции. Бледная бахрома на темном объекте может возникнуть, если объект сначала был прижат к белому цвету; изменение страницы позже не может пересчитать эти смешанные граничные пиксели из непрозрачного JPEG.
ToolAcre не предоставляет буферы с предварительным умножением альфа и не обещает конкретного низкоуровневого представления декодера, поэтому проверка на основе фактических данных является визуальной. Экспортируйте один и тот же логотип на две совершенно разные подложки и сравните его контур с исходным размером. Если ресурс должен работать на обоих фонах, сохраните альфу вместо поиска одного компромиссного края JPEG.
Результаты с мягкими краями следует проверять на фоне выбранной подложки; Внутренние элементы предварительного умножения не раскрываются
Используйте прозрачный логотип с мягкой тенью. Сначала выберите белый цвет и экспортируйте JPEG; затем выберите темно-зеленый и экспортируйте еще один JPEG. Прозрачное поле должно стать каждым выбранным цветом, а тень слиться с ним. Экспортируйте также копии PNG и WebP неизмененного размера, а затем поместите их поверх светлых и темных тестовых блоков в средстве просмотра изображений.
Маршрут PNG использует кодировщик без потерь и сохраняет прозрачность. Маршрут WebP сохраняет прозрачность, но остается с потерями в соответствии с данными формата приложения, даже при качестве 100. Копии JPEG обязательно непрозрачны. Никакого фиксированного ранжирования по размеру файла не утверждается, поскольку браузер измеряет реальные закодированные байты, а результат определяет результат.
Чего это не касается — выбор пользовательского цвета фона, анимированной прозрачности и 1-битных масок в стиле GIF.
Этот рабочий процесс охватывает пользовательский цвет фона — исходный контур неправильно исключил его. Он не сохраняет анимацию GIF, не обеспечивает вывод GIF и не предлагает специализированный редактор однобитовой маски. Входной сигнал GIF декодируется как один неподвижный кадр и получает те же правила формата назначения, что и другие принятые входные данные.
Он также не удаляет уже существующий цветной фон из непрозрачного источника. Сохранение альфа-канала помогает только тогда, когда прозрачность достигает декодера. Если источник уже содержит белый прямоугольник, экспорт в PNG не сможет воссоздать недостающую прозрачность. Эта задача требует преднамеренного удаления фона в редакторе, а не преобразования формата.
Пользовательский цвет фона реализован и принадлежит области действия.
Прозрачность сохраняется только в пункте назначения, который может ее представлять. ToolAcre делает альтернативу явной: JPEG получает выбранную подложку, а PNG и WebP сохраняют альфу в соответствии с их документированным поведением кодировщика. Прочтите предупреждение перед преобразованием, поскольку оно описывает одностороннее решение по пикселям, а не обратимое предпочтение отображения.
Сохраните исходный прозрачный ресурс в качестве основного. Создайте копию JPEG только после того, как станет известен окончательный фон, и проверьте мягкие края этого цвета. Это сохраняет гибкий источник, в то же время предоставляя получателям непрозрачный файл, который они могут открыть, не притворяясь, что последующее преобразование может восстановить альфу, которая была намеренно сведена.