Объекты URGBA и URGB
Многочисленные атрибуты объекта URGBA можно использовать вместо указания точных значений компонентов цвета, например, BLACK, WHITE, RED, GREEN, BLUE, YELLOW и др. Получить список всех поддерживаемых названий цветов позволяет словарь COLOR_NAMES. Пример указания красного цвета:
from unicross_image.ucolor import COLOR_NAMES, URGBA, URGB
print(COLOR_NAMES["red"]) # (255, 0, 0, 255)
print(URGBA.RED) # (255, 0, 0, 255)
В качестве значения возвращается кортеж из 4-х целых чисел от 0 до 255 (red, green, blue, opacity). Параметр opacity определяет степень непрозрачности (значение 0 — полностью прозрачный цвет, а значение 255 — полностью непрозрачный).
Некоторые названия цветов доступны на русском языке. Такие названия лучше указывать в виде строки внутри круглых скобок. В этом случае регистр символов не имеет значения и можно использовать букву ё:
print(URGBA("зелёный")) # (0, 128, 0, 255)
print(URGBA("green")) # (0, 128, 0, 255)
В словаре COLOR_NAMES названия цветов всегда указываются в нижнем регистре, при этом буква ё заменяется буквой е. При использовании объекта URGBA регистр не имеет значения:
print(COLOR_NAMES["зеленый"]) # (0, 128, 0, 255)
print(URGBA.green) # (0, 128, 0, 255)
Если необходимо задать прозрачный цвет, то следует воспользоваться атрибутом TRANSPARENT.
print(URGBA.TRANSPARENT) # (0, 0, 0, 0)
print(URGBA("прозрачный")) # (0, 0, 0, 0)
Если указанный цвет отсутствует в словаре COLOR_NAMES, то генерируется исключение KeyError (отсутствие ключа в словаре). При использовании объекта URGBA просто возвращается черный цвет:
print(URGBA.ABC) # (0, 0, 0, 255)
print(URGBA("abc")) # (0, 0, 0, 255)
Если цвета нет в словаре COLOR_NAMES, то его можно предварительно добавить:
COLOR_NAMES["abc"] = (10, 20, 30, 40)
print(URGBA.ABC) # (10, 20, 30, 40)
print(URGBA("abc")) # (10, 20, 30, 40)
Объект URGB имеет аналогичный интерфейс, но в качестве значения возвращается кортеж из 3-х целых чисел от 0 до 255 (red, green, blue). Пример указания зелёного цвета:
print(URGB("зелёный")) # (0, 128, 0)
print(URGB("green")) # (0, 128, 0)
print(URGB.GREEN) # (0, 128, 0)
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage