Введение
Способность компьютерной графики обеспечивать видимость объектов, находящихся "за" ней.
Прозрачность в компьютерной графике реализована во многих форматах файлов. Термин "прозрачность" используется по-разному, но в самом простом понимании существует "полная прозрачность", то есть абсолютная невидимость. Только часть графического изображения должна быть полностью прозрачной, иначе ничего не будет видно. Более сложным вариантом является "частичная прозрачность" или "полупрозрачность", когда достигается эффект, аналогичный видимости через цветное стекло. Поскольку печатная страница, компьютерный или телевизионный экран в каждой точке могут отображать только один цвет, частичная прозрачность всегда имитируется путем смешивания цветов на определенном уровне. Существует множество способов смешивания цветов, поэтому в некоторых случаях прозрачность может быть неоднозначной. Кроме того, прозрачность часто является дополнительной функцией графического формата, и некоторые графические программы могут её игнорировать. Растровые форматы файлов, поддерживающие прозрачность, включают GIF, PNG, BMP, TIFF, TGA и JPEG 2000, посредством использования прозрачного цвета или альфа-канала. Большинство векторных форматов неявно поддерживают прозрачность, просто избегая размещения каких-либо объектов в заданной точке. К ним относятся EPS и WMF. Для векторной графики это может не считаться строгой прозрачностью, но требует аналогичного тщательного программирования, как и в растровых форматах. Более сложные векторные форматы могут допускать комбинации прозрачности между элементами внутри изображения, а также по отношению к элементам, расположенным выше. К ним относятся SVG и PDF. Удобный редактор растровой графики отображает прозрачные области специальным узором, например, в виде шахматной доски.
Ограничения границ прозрачных пикселей
Края символов и других изображений с прозрачным фоном не должны содержать полутонов серого: они обычно используются для создания плавных переходов между цветом символа/изображения и цветом фона, как правило, оттенки серого применяются при переходе от черного символа к белому фону. Однако, например, при красном фоне промежуточные цвета будут темно-красными. Серые пиксели по краям приведут к некрасивому и размытому результату. При переменном цвете фона невозможно подобрать подходящие фиксированные промежуточные цвета.
Частичная прозрачность по альфа-каналам
Некоторые форматы изображений, такие как PNG и TIFF, также поддерживают частичную прозрачность с помощью альфа-канала, что решает проблему резких границ. Вместо того, чтобы пиксель был либо полностью прозрачным, либо полностью непрозрачным, ему можно задать 254 уровня полупрозрачности, позволяя частично просвечивать фоновое изображение сквозь изображение на переднем плане. Основное применение частичной прозрачности – создание "мягких переходов" в графике, чтобы она плавно сливалась с фоном. См. также монохромные изображения или изображения в оттенках серого и сглаживание. Частичную прозрачность можно использовать, чтобы сделать изображение менее заметным, например, водяной знак или логотип, или для создания эффекта прозрачности, например, призрачного образа в видеоигре. Анимируя альфа-канал в программе для редактирования изображений, можно добиться плавных переходов между разными изображениями. Процесс наложения полупрозрачного цвета на фон ("композитинг") часто не имеет чёткого определения, и результаты могут различаться. Например, если используется цветокоррекция, следует ли выполнять композитинг до или после цветокоррекции?
Прозрачность путем отсечения
Альтернативный подход к полной прозрачности — использование маски обрезки. Маска обрезки — это просто форма или контур, который используется вместе с другими графическими элементами. Все, что находится внутри маски, видимо, а все, что за ее пределами, — невидимо. Сама маска является векторной, но потенциально может использоваться для маскировки как векторных, так и растровых данных. Основное применение масок обрезки — в файлах PostScript.
Прозрачность в PDF
Начиная с версии 1.4 стандарта PDF (версия 5 Adobe Acrobat), поддерживается прозрачность (включая полупрозрачность). Прозрачность в PDF-файлах позволяет авторам достигать различных эффектов, таких как добавление теней к объектам, придание объектам полупрозрачности и смешивание объектов друг с другом или с текстом. PDF поддерживает множество различных режимов наложения, а не только наиболее распространенный метод усреднения, а правила композиции множества перекрывающихся объектов предоставляют различные варианты (например, сначала смешивается группа объектов, а затем результат – с фоном, или каждый объект поочередно смешивается с фоном). Модель прозрачности PDF – очень сложная, оригинальная спецификация Adobe насчитывает более 100 страниц. Ключевой причиной сложности является то, что смешивание объектов с разными цветовыми пространствами может быть затруднительным и приводить к ошибкам, а также вызывать проблемы совместимости. Прозрачность в PDF была разработана таким образом, чтобы не вызывать ошибок в программах просмотра PDF, которые её не поддерживают – они просто отображают все элементы как полностью непрозрачные. Однако это было палкой о двух концах, поскольку пользователи со старыми программами просмотра, PDF-принтерами и т.п. могли видеть или печатать результат, существенно отличающийся от исходного дизайна. Сложность модели прозрачности PDF означает, что она не всегда хорошо поддерживается. Это приводит к тому, что RIP-ы и принтеры часто испытывают трудности при печати PDF-файлов с прозрачностью. Решением является растрирование изображения или применение векторизации прозрачности к PDF. Однако векторизация прозрачности – чрезвычайно сложный процесс, поддерживаемый лишь небольшим количеством специализированных программных пакетов.
Прозрачность в PostScript
Язык PostScript имеет ограниченную поддержку полной (а не частичной) прозрачности, зависящую от версии PostScript. Частичная прозрачность доступна с использованием расширения pdfmark, реализованного во многих интерпретаторах PostScript.
Уровень 2
Уровень 2 PostScript не добавляет специальных функций прозрачности. Однако, с использованием шаблонов, любую графику можно отрисовать через маски, определяемые любыми векторными или текстовыми операциями. Это, однако, сложно реализовать. Более того, эта техника часто наталкивалась на ограничения реализации, и лишь немногие, если вообще какие-либо, приложения когда-либо предлагали её.
Уровень 3
Уровень 3 PostScript добавляет расширенные возможности управления прозрачностью для любого растрового изображения. Можно применить прозрачный цвет или диапазон цветов, либо использовать отдельную 1-битную маску для создания альфа-канала.
Закапленный PostScript
Файлы EPS содержат PostScript, который может быть уровня 1, 2 или 3 и использовать описанные выше возможности. Более тонкая проблема возникает с предварительными просмотрами файлов EPS, которые обычно используются для отображения содержимого файла EPS на экране. Существуют работоспособные методы задания прозрачности в предварительном просмотре. Например, предварительный просмотр TIFF может использовать альфа-канал TIFF. Однако многие приложения не используют эту информацию о прозрачности и поэтому отображают предварительный просмотр в виде прямоугольника. Полупроприетарная технология, впервые разработанная в Photoshop и принятая рядом приложений для допечатной подготовки, заключается в сохранении обтравочного контура в стандартном месте внутри EPS-файла и использовании его для отображения. Кроме того, лишь немногие программы, генерирующие предварительные просмотры EPS, создают информацию о прозрачности в самом предварительном просмотре. Некоторые программы пытались решить эту проблему, считая все белые области в предварительном просмотре прозрачными, но это также вызывает затруднения в случаях, когда некоторые белые области должны быть непрозрачными. В последнее время появляются приложения, которые полностью игнорируют предварительный просмотр и получают информацию о том, какие части изображения нужно отрисовать, непосредственно интерпретируя PostScript.