Введение

Данные, используемые для побитовых операций

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

Маски изображения

В компьютерной графике, когда изображение предназначено для наложения на фон, прозрачные области могут быть заданы с помощью двоичной маски. Таким образом, для каждого изображения фактически используются две растровые карты: само изображение, в котором неиспользуемые области получают значение пикселя, у которого все биты установлены в 0, и дополнительная маска, в которой соответствующим областям изображения присваивается значение пикселя, у которого все биты установлены в 0, а окружающим областям – значение пикселя, у которого все биты установлены в 1. На примере справа черные пиксели имеют все биты равные нулю, а белые – все единицы. Во время выполнения, для наложения изображения на фон, программа сначала маскирует биты пикселей фона маской изображения в нужных координатах, используя побитовое И. Это сохраняет пиксели фона в прозрачных областях и обнуляет биты пикселей, которые будут закрыты накладываемым изображением. Затем программа отрисовывает биты пикселей изображения, объединяя их с битами пикселей фона с помощью побитового ИЛИ. Таким образом, пиксели изображения размещаются корректно, при этом окружающие пиксели фона сохраняются. В результате получается идеальное сочетание изображения и фона. Эта техника используется для отрисовки курсоров, в типичных 2D-играх для персонажей, пуль и т.д. (спрайтов), для иконок графического интерфейса, а также для видеотитров и других приложений для смешивания изображений. Более быстрый способ – просто перезаписать пиксели фона пикселями переднего плана, если их альфа-значение равно 1.

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