Справочник MQL4 Преобразование данных ColorToARGB
|
ColorToARGBПреобразует тип color в тип uint для получения ARGB-представления цвета. ARGB формат цвета используется при создании графического ресурса, вывода текста и в классе стандартной библиотеки CCanvas.
Параметры clr [in] Значение цвета в переменной типа color. alpha [in] Значение альфа-канала, для получения цвета в формате ARGB. Задается значением от 0 (цвет накладываемого пикселя совсем не меняет отображения нижележащего пикселя) до 255 (цвет накладывается полностью и перекрывает собою цвет нижележащего пикселя). Прозрачность цвета в процентом выражении вычисляется как (1-alpha/255)*100%, то есть чем меньше значение альфа-канала, тем более прозрачен цвет. Возвращаемое значение Представление цвета в формате ARGB, где в четырех байтах типа uint прописаны по порядку значения Alfa, Red, Green, Blue (альфа-канал, красный, зеленый, голубой). Примечание Основным общеупотребимым форматом для описания цвета пикселя на экране дисплея в компьютерной графике является RGB, где по названиям базовых цветов задаются красная (Red), зеленая (Green) и синяя (Blue) компоненты цвета. Каждая компонента описывается одним байтом, задающим насыщенность данного цвета в интервале от 0 до 255 (от 0x00 до 0XFF в шестнадцатеричном формате). Так как белый цвет содержит в себе все цвета, то он описывается как 0xFFFFFF, то есть каждая из трех компонент представлена максимальным значением 0xFF. Но в ряде задач требуется указание прозрачности цвета, чтобы описать, каким образом будет выглядеть изображение, если на него наложен цвет с некоторой долей прозрачности. Для таких случаев вводится понятие альфа-канала (Alpha), который вводится как дополнительная компонента к формату RGB. Схема формата ARGB показана на рисунке. Значения в виде ARGB обычно указываются в шестнадцатеричном формате, где каждая пара цифр представляет по порядку значения каналов Alpha, Red, Green и Blue. Например, ARGB-цвет 80FFFF00 означает желтый цвет с непрозрачностью 50.2 %. В начале идет 0x80, которое задает 50.2% значение альфа-канала, так как это 50.2% от значения 0xFF; далее первая пара FF представляет максимальное значение красной компоненты; следующая пара FF задает такую же силу зеленой компоненты; и последняя пара 00 представляет минимальное значение синей компоненты (отсутствие синего). Сложение зеленого и красного цвета дает желтый. Если альфа-канал не используется, запись может быть сокращена до 6 цифр RRGGBB, вот почему значения альфа-канала хранятся в верхних битах целочисленного типа uint. В зависимости от контекста 16-ричные цифры могут записываться с префиксом '0x' или '#', например, 80FFFF00, или 0x80FFFF00, или #80FFFF00. Пример:
Смотри также Ресурсы, ResourceCreate(), TextOut(), Тип color, Типы char, short, int и long |