Другие цветовые модели
Цветовая гамма цветовой модели RYB весьма ограниченна, а кроме того, эта модель не очень легко поддается математическому определению. Как ни прискорбно об этом говорить, но вас неверно учили теории цвета в школе — по крайней мере, в контексте машинной графики. Но на будущее имейте в виду, что в машинной графике вообще и в программировании графических приложений в частности в качестве основных цветов принято использовать красный, зеленый и синий, но не красный, желтый и синий.
Помимо красного, зеленого и синего, в обеих библиотеках, Quartz 2D и OpenGL ES, применяется еще одна составляющая цвета, называемая альфа-каналом (alpha) и определяющая степень прозрачности цвета. Когда один цвет наносится на другой в процессе рисования, альфа-канал используется для определения окончательно нарисованного цвета. Так, если значение альфа-канала равно 1,0, нарисованный цвет получается совершенно непрозрачным, полностью закрывая любые находящиеся под ним другие цвета. Когда используется составляющая альфа-канала, то соответствующая цветовая модель иногда еще называется цветовой моделью RGBA (RGBA color model), хотя формально альфа-канал не относится к цвету, а только определяет взаимодействие одного цвета с другими цветами в процессе рисования.
Цветовая модель RGB считается самой распространенной в машинной графике, но она далеко не единственная. В машинной графике применяется ряд других цветовых моделей, включая следующие.
"Оттенок-насыщенность-Значение" (HSV).
"Оттенок-насыщенность-Яркость.
"Голубой-пурпурный-желтый-черный" (CMYK) — применяется в четырех красочной офсетной печати. "Полутон" (Grayscale).
Дело осложняется еще и тем, что у некоторых из этих моделей имеются различные варианты, в том числе несколько вариантов цветового пространства RGB.
Однако для выполнения большинства операций особенно беспокоиться о применяемой цветовой модели не нужно. Для выполнения всех необходимых преобразований в оболочке Core Graphics достаточно, например, передать объект типа CGColor из объекта типа UlColor. Но если один из этих объектов используется в работе с библиотекой OpenGL ES, то следует иметь в виду, что они поддерживают другие цветовые модели, поскольку при обращении к библиотеке OpenGL Е5 требуется указывать цвета, определенные в цветовой модели RGBA. В классе UlColor имеется целый ряд служебных методов, возвращающих объекты типа UlColor, инициализированные конкретным цветом. В рассматривавшемся ранее примере кода метод redColor был использован для задания красного цвета.
- Дата: 11-01-2015, 13:39