Альфа-канал

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Пример работы альфа-композитных операторов over, in, out, atop и xor

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

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

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

Расчет результирующего цвета[править | править исходный текст]

Расчет яркости результирующего пикселя после наложения двух пикселей друг на друга выполняется по формуле

Result = Background * (1 − Alpha) + Foreground * Alpha

или (иная запись)

Result = Background + (ForegroundBackground) * Alpha

где

Background — яркость фонового пикселя,
Foreground — яркость накладываемого пикселя,
Alpha ∈ [0..1] — прозрачность накладываемого пикселя.

Вторая приведённая отображает следующий смысл: значение Alpha указывает относительное положение на отрезке [Background..Foreground].

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

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

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

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

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

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

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

Применение альфа-канала также возможно в 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)
  3. htmlbook.ru - CSS - opacity

См. также[править | править исходный текст]