Прозрачность (графика) - Transparency (graphic)

Гифка анимация Упаковка аполлонических сфер с прозрачным фоном

Прозрачность возможно в нескольких форматах графических файлов. Термин «прозрачность» используется разными людьми по-разному, но в простейшем случае это «полная прозрачность», то есть нечто совершенно невидимое. Только часть изображения должна быть полностью прозрачной, иначе ничего не будет видно. Более сложным является «частичная прозрачность» или «полупрозрачность».[нужна цитата ] где достигается эффект, что изображение частично прозрачно, как цветное стекло. Поскольку в конечном итоге печатная страница, экран компьютера или телевизора может быть только одного цвета в точке, частичная прозрачность всегда моделируется на некотором уровне путем смешивания цветов. Есть много разных способов смешивания цветов, поэтому в некоторых случаях прозрачность неоднозначна.

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

Анимированный PNG (APNG ) 8-битная прозрачность

Растр форматы файлов, поддерживающие прозрачность, включают Гифка, PNG, BMP, TIFF, TGA и JPEG 2000 через либо прозрачный цвет или альфа-канал.

Наиболее вектор форматы неявно поддерживают прозрачность, потому что они просто не помещают какие-либо объекты в заданную точку. Это включает в себя EPS и WMF. Для векторной графики это не всегда можно рассматривать как прозрачность, но для этого требуется такое же тщательное программирование, как и для прозрачности в растровых форматах.

Более сложные векторные форматы могут допускать комбинации прозрачности между элементами внутри изображения, а также указанное выше. Это включает в себя SVG и PDF.

Подходящий редактор растровой графики показывает прозрачность специальным узором, например узор в шахматном порядке.

Прозрачные пиксели

Это изображение имеет двоичную прозрачность (некоторые пиксели полностью прозрачны, другие полностью непрозрачны). Он может быть прозрачным на любом фоне, потому что он монохромный.

Один элемент цвета в палитре одного изображения GIF или PNG может быть определен как «прозрачный», а не как реальный цвет. Это означает, что, когда декодер встречает пиксель с этим значением, он отображается в цвете фона той части экрана, где размещается изображение, также если это изменяется попиксельно, как в случае фона. изображение.

Приложения включают:

  • изображение, не имеющее прямоугольной формы, может быть заполнено до требуемого прямоугольника с использованием прозрачного окружения; изображение может даже иметь дырки (например, иметь форму кольца)
  • в отрывке текста специальному символу, для которого используется изображение, поскольку оно недоступно в наборе символов, может быть задан прозрачный фон, в результате чего будет получен соответствующий фон.

Прозрачный цвет следует выбирать осторожно, чтобы предметы, которые случайно оказались одного цвета, не исчезли.

Даже эта ограниченная форма прозрачности имеет неоднородную реализацию, хотя большинство популярных веб-браузеров могут отображать прозрачные изображения в формате GIF. Эта поддержка часто не распространяется на печать, особенно на печатающие устройства (такие как PostScript ), которые не включают поддержку прозрачности в устройстве или драйвере. За пределами мира веб-браузеров прозрачные файлы GIF практически не поддерживаются.

Граничные ограничения прозрачных пикселей

Это изображение имеет двоичную прозрачность. Однако это оттенки серого, с сглаживание, поэтому хорошо смотрится только на белом фоне. При установке на другом фоне из-за оттенков серого может возникнуть эффект "ореолов".

Края символов и других изображений с прозрачным фоном не должны иметь оттенки серого: они обычно используются для промежуточных цветов между цветом буквы / изображения и цветом фона, обычно оттенки серого являются промежуточными между черной буквой и белым фоном. Однако, например, с красным фоном промежуточные цвета будут темно-красными. Пиксели с серыми краями дадут уродливый и нечеткий результат. Для переменного цвета фона нет подходящих фиксированных промежуточных цветов.

Частичная прозрачность по альфа-каналам

Это изображение имеет частичную прозрачность (254 возможных уровня прозрачности между полностью прозрачным и полностью непрозрачным). Он может быть прозрачным на любом фоне, несмотря на сглаживание.

Некоторые форматы изображений, такие как PNG и TIFF, также допускают частичную прозрачность через альфа-канал, что решает проблему ограничения границ. Вместо того, чтобы каждый пиксель был прозрачным или непрозрачным, для него можно установить 254 уровня частичной прозрачности, что позволяет некоторой части фонового изображения отображаться через изображение переднего плана.

В основном частичная прозрачность используется для создания «мягких краев» графики, чтобы они сливались с фоном.[1] Смотрите также монохромный или с оттенками серого и сглаживание. Частичная прозрачность также может использоваться, чтобы сделать изображение менее заметным, например водяной знак или другой логотип; или для визуализации чего-то прозрачного, например, призрачного привидения в видеоигре. Анимация альфа-канала в программе редактирования изображений может обеспечить плавные переходы между разными изображениями.

Процесс комбинирования частично прозрачного цвета с его фоном («композитинг») часто не определен, и результаты могут быть не во всех случаях одинаковыми. Например, если используется цветокоррекция, следует ли комбинировать цвета до или после цветокоррекции?

На этом изображении показаны результаты наложения каждого из вышеуказанных прозрачных изображений PNG на цвет фона # 6080A0. Обратите внимание на серые полосы на буквах среднего изображения.
Это показывает, как будут выглядеть приведенные выше изображения, например, при их редактировании. Серо-белый узор в клетку будет преобразован в прозрачность.

Прозрачность по обтравочному контуру

Альтернативный подход к полной прозрачности - использовать Отсечения путь. Обтравочный контур - это просто форма или контур, который используется вместе с другой графикой. Все внутри пути видно, а все за пределами пути невидимо. Путь по своей природе является векторным, но потенциально может использоваться для маскировки как векторных, так и растровых данных. В основном контуры обрезки используются в файлах PostScript.

Составление расчетов

В то время как некоторые спецификации прозрачности расплывчаты, другие могут содержать математические подробности о том, как должны сочетаться два цвета. Это довольно простой пример того, как вычисления композиции могут работать, могут давать ожидаемые результаты, а также могут преподносить сюрпризы.

В этом примере необходимо совместить два оттенка серого. Значениями оттенков серого считаются числа от 0,0 (белый) до 1,0 (черный). Подчеркну: это только одно из возможных правил прозрачности. Если вы работаете с прозрачностью, проверьте правила, которые используются в вашей ситуации.

Цвет в точке, где должны сочетаться цвета G1 и G2, равен (G1 + G2) / 2.Некоторые последствия этого:

  • Если цвета равны, результат будет того же цвета, потому что (G1 + G1) / 2 = G1.
  • Если один цвет (G1) белый (0,0), результат будет G2 / 2. Это всегда будет меньше любого ненулевого значения G2, поэтому результат будет белее, чем G2. (Это легко изменить в случае, когда G2 белый).
  • Если один цвет (G1) черный (1.0), результат будет (G2 + 1) / 2. Это всегда будет больше, чем G2, поэтому результат будет чернее, чем G2.
  • Формула коммутативный поскольку (G1 + G2) / 2 = (G2 + G1) / 2. Это означает, что не имеет значения, в каком порядке смешиваются две графики, т. Е. Какая из двух находится наверху, а какая внизу.
  • Формула нет ассоциативный поскольку
((G1 + G2) / 2 + G3) / 2 = G1 / 4 + G2 / 4 + G3 / 2 (G1 + (G2 + G3) / 2) / 2 = G1 / 2 + G2 / 4 + G3 / 4

Это важно, поскольку это означает, что при объединении трех или более объектов с этим правилом прозрачности конечный цвет очень сильно зависит от порядка выполнения вычислений.

Хотя формула проста, она может быть не идеальной. Человеческое восприятие яркости не является линейным - мы не обязательно считаем, что значение серого 0,5 находится на полпути между черным и белым. Такие детали могут не иметь значения, когда прозрачность используется только для смягчения краев, но в более сложных проектах это может иметь значение. Большинству людей, серьезно работающих с прозрачностью, нужно будет увидеть результаты и поиграть с цветами или (где возможно) с алгоритмом, чтобы получить нужные результаты.

Эту формулу легко обобщить на RGB цвет или CMYK цвет, применяя формулу к каждому каналу отдельно. Например, final красный = (R1 + R2) / 2. Но не для всех цветовых моделей. Например, Цвет лаборатории приведет к удивительным результатам.

Альтернативная модель состоит в том, что в каждой точке каждого элемента, который должен быть объединен для обеспечения прозрачности, есть связанный цвет и непрозрачность от 0 до 1. Для каждого цветового канала вы можете работать с этой моделью: если канал с интенсивностью G2 и непрозрачность Т2 накладывает на канал интенсивность G1 и непрозрачность Т1 в результате получится канал с интенсивностью равной (1 - Т2) * G1 + G2, и непрозрачность 1 - (1 - Т2) * (1 - Т1). Перед композицией каждый канал необходимо умножить на соответствующее значение альфа (так называемое предварительно умноженная альфа ). В спецификации файла SVG используется этот тип смешивания, и это одна из моделей, которые можно использовать в PDF.

Таким образом могут быть реализованы альфа-каналы, где альфа-канал обеспечивает уровень непрозрачности, который одинаково применяется ко всем другим каналам. Чтобы работать с приведенной выше формулой, непрозрачность необходимо масштабировать до диапазона от 0 до 1, независимо от его внешнего представления (часто от 0 до 255 при использовании 8-битных выборок, таких как «RGBA»).

Прозрачность в PDF

Начиная с версии 1.4 стандарта PDF (Adobe Acrobat версия 5) поддерживается прозрачность (включая полупрозрачность). Прозрачность в файлах PDF позволяет создателям достигать различных эффектов, включая добавление теней к объектам, создание полупрозрачных объектов и слияние объектов друг с другом или с текстом. PDF поддерживает множество различных режимов наложения, а не только наиболее распространенный метод усреднения, а правила наложения множества перекрывающихся объектов позволяют выбирать (например, смешиваются ли группы объектов перед смешиванием с фоном или каждый объект, в свою очередь, смешивается на задний план).

Прозрачность PDF - это очень сложная модель, ее исходная спецификация Adobe содержит более 100 страниц. Ключевым источником сложности является то, что смешивание объектов с разными цветовые пространства может быть сложным и подверженным ошибкам, а также вызывать совместимость вопросы. Прозрачность в PDF была разработана так, чтобы не вызывать ошибок в программах просмотра PDF, которые ее не понимали - они просто отображали все элементы как полностью непрозрачные. Однако это был обоюдоострый меч, поскольку пользователи старых программ просмотра, PDF-принтеров и т. Д. Могли видеть или распечатывать что-то совершенно отличное от оригинального дизайна.

Тот факт, что модель прозрачности PDF настолько сложна, означает, что она плохо поддерживается. Это означает, что RIP и принтеры часто имеют проблемы с печатью PDF-файлов с прозрачностью. Решением этой проблемы является растеризация изображения или применение к PDF-файлу сглаживания векторной прозрачности. Однако выравнивание векторной прозрачности чрезвычайно сложно и поддерживается только несколькими специализированными пакетами.

Прозрачность в PostScript

В PostScript язык имеет ограниченную поддержку полной (а не частичной) прозрачности в зависимости от уровня PostScript. Частичная прозрачность доступна с расширением pdfmark,[2] доступно во многих реализациях PostScript.

1-й уровень

PostScript уровня 1 обеспечивает прозрачность двумя способами:

  • Однобитовое (монохромное) изображение можно рассматривать как маску. В этом случае 1-биты могут быть окрашены в любой единственный цвет, а 0-биты вообще не окрашены. Этот метод нельзя распространить на более чем один цвет или векторные фигуры.
  • Можно определить пути отсечения. Они ограничивают то, какую часть всей последующей графики можно увидеть. Это можно использовать для любого типа графики, однако на уровне 1 максимальное количество узлов в пути часто ограничивалось 1500, поэтому сложные пути (например, обрезка волос на фотографии головы человека) часто терпели неудачу.

Уровень 2

PostScript уровня 2 не добавляет специальных функций прозрачности. Однако с помощью шаблонов произвольную графику можно нарисовать через маски, определяемые любыми векторными или текстовыми операциями. Однако это сложно реализовать. Кроме того, это слишком часто достигало пределов реализации, и очень немногие прикладные программы когда-либо предлагали этот метод.

Уровень 3

PostScript уровня 3 добавляет дополнительную опцию прозрачности для любого растрового изображения. Может применяться прозрачный цвет или диапазон цветов; или отдельная 1-битная маска может использоваться для предоставления альфа-канала.

Инкапсулированный PostScript

Файлы EPS содержат PostScript, который может быть уровня 1, 2 или 3 и может использовать указанные выше функции. Более тонкая проблема возникает с предварительным просмотром файлов EPS, которые обычно используются для отображения представления файла EPS на экране. Существуют эффективные методы настройки прозрачности в предварительном просмотре. Например, предварительный просмотр TIFF может использовать альфа-канал TIFF. Однако многие приложения не используют эту информацию о прозрачности и поэтому отображают предварительный просмотр в виде прямоугольника. Полупатентованная технология, впервые примененная в Фотошоп и принятый рядом приложений допечатной подготовки, заключается в том, чтобы сохранить траекторию обрезки в стандартном месте EPS и использовать ее для отображения.

Кроме того, некоторые программы, которые генерируют предварительный просмотр EPS, будут генерировать информацию о прозрачности в предварительном просмотре.

Некоторые программы пытались обойти это, рассматривая весь белый цвет в предварительном просмотре как прозрачный, но это тоже проблематично в случаях, когда некоторые белые нет прозрачный.

В последнее время появляются приложения, которые полностью игнорируют предварительный просмотр; поэтому они получают информацию о том, какие части предварительного просмотра нужно рисовать, интерпретируя PostScript.

Смотрите также

Рекомендации

  1. ^ Крофт, Джефф. «Творческое использование прозрачности PNG в веб-дизайне». Digiwebs. Получено 14 сентября 2020.
  2. ^ Adobe (2 октября 2005 г.). "Справочное руководство pdfmark" (PDF). Получено 2009-08-12.

внешняя ссылка