Альфа-канал

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск

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

Термин альфа-канал впервые введён в оборот Алви Смитом в конце 1970-х и детально проработан в статье Томаса Портера и Тома Даффа 1984 года. [1]

В компьютерных играх, чтобы показать прозрачность того или иного объекта, используются текстуры с альфа-каналом.

Пример работы альфа-композитных операторов over, in, out, atop и xor

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

Расчет результирующего цвета[править]

Существуют два типа альфа-каналов: предварительно умноженный и прямой альфа-канал.

Расчет результирующего цвета производится по формуле: \(~ ResultColor = BackColor * (1 - Transparency) + ForeColor * Transparency\) где:

  • BackColor - исходный цвет пикселя
  • ForeColor - цвет накладываемого пикселя
  • Transparency - прозрачность накладываемого пикселя, \(Transparency \in [0..1]\)

Чтобы получить результирующий цвет, эту формулу надо применить к каждому из каналов изображения.

Применение[править]

Альфа-канал используется, чтобы наложить изображение на фон или другое изображение, а также в ряде других задач.

Использование в web-дизайне, поддержка в формате PNG[править]

Альфа-канал, также известный как маска-канал, это просто способ объединить переходную прозрачность с изображением. Формат GIF поддерживает простую бинарную прозрачность (когда любой пиксель может быть либо полностью прозрачным, либо абсолютно непрозрачным). Формат PNG позволяет использовать 254 или 65534 уровня частичной прозрачности.

Все три типа PNG изображений («TrueColor», «GrayScale» и индексированная палитра) могут содержать альфа-информацию, хотя обычно она применяется лишь с «TrueColor» изображениями. Вместо того, чтобы сохранять три байта для каждого пикселя (красный, зелёный и синий, RGB), сохраняются четыре: красный, зелёный, синий и альфа, таким образом получается RGBA.

Такая переходная прозрачность позволяет создавать «спецэффекты», хорошо выглядящие на любом фоне. Например, эффекта фотовиньетки, для портрета, можно добиться путём установки полностью непрозрачной центральной области (то есть для лица и плеч), прозрачной остальной обстановки и с созданием плавного перехода между двумя этими различными областями. Соответственно, портрет будет плавно осветляться на белом фоне, и затемняться на чёрном. Ещё один спецэффект с прозрачностью — это отбрасывание тени. Так, на изображениях ниже показан тукан, в первом случае отбрасывающий тень на красочный фон, во втором — на свою копию.

Прозрачность наиболее важна для маленьких изображений, обычно используемых на web-страницах, вроде цветных (круглых) маркеров или причудливого текста. Альфа-смешивание позволяет использовать другой эффект, а именно сглаживание (anti-aliasing), создавая иллюзию гладких кривых на сетке прямоугольных пикселей, плавно изменяя их цвета, что позволяет добиться округлых изображений, хорошо отображаемых как на белом, так и на любом другом фоне. Таким образом одно и то же изображение может быть многократно использовано в нескольких местах без «призрачного» эффекта, свойственного GIF-изображениям. [2]

Поддержка альфа-канала в формате .ico[править]

Windows XP поддерживает 32-битные значки (иконки) — 24-бита цвета RGB и 8-битный альфа канал. Это позволяет отображать значки со сглаженными (размытыми) краями и тенью, которые сочетаются с любым фоном.

Альфа-канал в CSS3 и SVG[править]

CSS3, также, позволяет использовать цветовую модель rgba и hsla, где значение альфа принимает от 0 до 1 (рациональные числа). Также, существует параметр прозрачности — Opacity. Альфа-канал, также, используется в SVG.

Альфа-канал в Canvas[править]

Применение альфа-канала также возможно в Canvas. Например для полупрозрачности фигур или изображений.

Примечания[править]

  1. Thomas Porter and Tom Duff, Compositing Digital Images, Computer Graphics, 18(3), July 1984, 253-259. DOI:10.1145/800031.808606
  2. rus-linux.net (лицензия GFDL)