Билл Гэйтс (Bill Gates)
Для поддержки манипуляций с пиксельными картами естественно создать несколько классов. Каждая пиксельная карта имеет определенное количество строк и столбцов, и каждый ее пиксел содержит информацию, записанную в определенном виде: О битовая карта (bitmap): каждый пиксел записан в одном бите, так что каждый пиксел находится в одном из двух состояний: «включен» («on») или «выключен» («off»);
10.2. Управление пиксельными картами О пиксельная карта оттенков серого (gray-scale): каждый пиксел записан в одном байте, представляющем градации серого цвета от 0 (черный) до 255 (белый); О LUT-индексы: каждый пиксел содержит число, представляющее собой индекс в кодовой таблице цветов (color lookup table - LUT), как описано в главе 1. Чаще всего в LUT содержится 256 элементов, так что каждый индекс может быть записан в одном байте; О RGB-карта (RGB-pixmap): каждый пиксел состоит из трех байт, по одному для красного, зеленого и синего компонентов пиксела. Считается, что такие пикселы отображают «реалистичное цветовоспроизведение» («true color»); О RGBA-карта (RGBA-pixmap): каждый пиксел состоит из четырех байт: первые три байта такие же, как и в RGB-карте, а четвертый содержит так называемый «альфа-фактор», характеризующий непрозрачность. Мы будем рассматривать использование «альфа-канала» в разделе 10.3 «Объединение пиксельных карт». Создадим для работы с пиксельными картами класс, который содержит данные пиксельной карты и предоставляет методы для обработки созданных в этом классе изображений. Мы разработаем детали RGB-карт и распространим их на другие типы пиксельных карт. Для удобства использования инструментов обработки изображений OpenGL мы будем хранить данные пиксельной карты в том же виде, в каком это делает OpenGL'.
Прежде всего определим тип под названием RGB, в котором содержится одно значение пиксела в форме RGB-триады:
class RGB{
public: unsigned char r.g.b: