Класс UColor: цвет в формате RGBA
Класс UColor описывает цвет в формате RGBA (значения от 0 до 255). Инструкция импорта:
from unicross_image.ucolor import UColor, URGBA, URGB
Конструкторы класса UColor:
UColor()
UColor(red, green, blue)
UColor(red, green, blue, opacity)
UColor(<Кортеж или список rgb>)
UColor(<Кортеж или список rgba>)
UColor(<Строка hex>)
UColor(<Название цвета>)
Первый конструктор создает объект с черным цветом:
c = UColor()
print(c) # UColor(red=0, green=0, blue=0, opacity=255)
print(repr(c)) # (0, 0, 0, 255)
Во втором и третьем конструкторах в качестве значений указывается целое число от 0 до 255. В параметрах red, green и blue значение задает долю красной, зеленой и синей составляющих цвета соответственно. Параметр opacity задает степень непрозрачности (значение 0 — полностью прозрачный цвет, а значение 255 — полностью непрозрачный). Если параметр opacity не указан, то он получит значение 255. Пример указания синего цвета:
c = UColor(0, 0, 255)
print(c)
# UColor(red=0, green=0, blue=255, opacity=255)
c = UColor(0, 0, 255, 255)
print(c)
# UColor(red=0, green=0, blue=255, opacity=255)
В четвертом и пятом конструкторах в качестве значений указывается кортеж или список из 3-х (red, green, blue) или 4-х (red, green, blue, opacity) целых чисел от 0 до 255. Если четвертый параметр не указан, то opacity получит значение 255. Пример указания синего цвета:
c = UColor((0, 0, 255))
print(c)
# UColor(red=0, green=0, blue=255, opacity=255)
c = UColor((0, 0, 255, 255))
print(c)
# UColor(red=0, green=0, blue=255, opacity=255)
c = UColor(URGBA.BLUE)
print(c)
# UColor(red=0, green=0, blue=255, opacity=255)
Шестой конструктор позволяет указать цвет в виде строки, состоящей из шестнадцатеричных значений. Строка должна начинаться с символа #, например: "#ffffff", "#fff". Пример указания белого цвета:
c = UColor("#fff")
print(c)
# UColor(red=255, green=255, blue=255, opacity=255)
c = UColor("#ffffff")
print(c)
# UColor(red=255, green=255, blue=255, opacity=255)
c = UColor("#ffffffff")
print(c)
# UColor(red=255, green=255, blue=255, opacity=255)
Если строка содержит ошибки, то объект будет черного цвета:
c = UColor("#fffps")
print(c)
# UColor(red=0, green=0, blue=0, opacity=255)
Седьмой конструктор позволяет указать название цвета в виде строки. Регистр символов не имеет значения. Если цвет с таким названием не найден, то объект будет черного цвета. Пример указания зеленого цвета:
c = UColor("green")
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
c = UColor("зелёный")
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
Пример указания прозрачного цвета:
c = UColor("transparent")
print(c)
# UColor(red=0, green=0, blue=0, opacity=0)
c = UColor("прозрачный")
print(c)
# UColor(red=0, green=0, blue=0, opacity=0)
Создать объект цвета позволяют также следующие статические методы из класса UColor:
from_rgba(<Кортеж или список>) — позволяет указать цвет в виде кортежа из 4-х целых чисел от 0 до 255 (red, green, blue, opacity). Параметр opacity определяет степень непрозрачности (значение 0 — полностью прозрачный цвет, а значение 255 — полностью непрозрачный). Пример:
c = UColor.from_rgba((0, 128, 0, 255))
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
c = UColor.from_rgba(URGBA.GREEN)
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
from_rgb(<Кортеж или список>) — позволяет указать цвет в виде кортежа из 3-х целых чисел от 0 до 255 (red, green, blue). Параметр opacity получит значение 255 — полностью непрозрачный. Пример:
c = UColor.from_rgb((0, 128, 0))
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
c = UColor.from_rgb(URGB.GREEN)
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
Можно передать кортеж из 4-х элементов, но четвертый элемент игнорируется:
c = UColor.from_rgb((0, 128, 0, 123))
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
c = UColor.from_rgb(URGBA.GREEN)
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
from_hex(<Строка>) — позволяет указать цвет в виде строки, состоящей из шестнадцатеричных значений. Например: "#ffffff", "#fff". Пример:
c = UColor.from_hex("#fff")
print(c)
# UColor(red=255, green=255, blue=255, opacity=255)
c = UColor.from_hex("#ffffff")
print(c)
# UColor(red=255, green=255, blue=255, opacity=255)
Если строка содержит ошибки, то объект будет черного цвета:
c = UColor.from_hex("#fffps")
print(c)
# UColor(red=0, green=0, blue=0, opacity=255)
from_name(<Строка>) — позволяет указать название цвета в виде строки. Пример:
c = UColor.from_name("green")
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
c = UColor.from_name("зелёный")
print(c)
# UColor(red=0, green=128, blue=0, opacity=255)
Пример указания прозрачного цвета:
c = UColor.from_name("transparent")
print(c)
# UColor(red=0, green=0, blue=0, opacity=0)
c = UColor.from_name("прозрачный")
print(c)
# UColor(red=0, green=0, blue=0, opacity=0)
Если цвет не найден, то объект будет содержать черный цвет:
c = UColor.from_name("abc")
print(c)
# UColor(red=0, green=0, blue=0, opacity=255)
from_gray(gray, opacity=255) — создает серый цвет. Значение параметра gray указывается в виде целого числа от 0 (черный цвет) до 255 (белый цвет). Параметр opacity определяет степень непрозрачности (значение 0 — полностью прозрачный цвет, а значение 255 — полностью непрозрачный). Пример:
c = UColor.from_gray(128)
print(c)
# UColor(red=128, green=128, blue=128, opacity=255)
c = UColor.from_gray(128, 50)
print(c)
# UColor(red=128, green=128, blue=128, opacity=50)
from_hsv(<Кортеж>) — создает объект цвета на основе кортежа из 3-х составляющих (hue, saturation, brightness) цветовой модели HSV (HSB). Параметр hue (значение от 0.0 до 1.0) задает цветовой тон, параметр saturation (значение от 0.0 до 1.0) — насыщенность, параметр brightness (значение от 0.0 до 1.0) — яркость. Параметр opacity получит значение 255 — полностью непрозрачный. Пример:
c = UColor.from_hsv((0.0, 1.0, 1.0))
print(c)
# UColor(red=255, green=0, blue=0, opacity=255)
from_ucolor(<UColor>) — создает объект цвета на основе другого объекта класса UColor. Пример:
c1 = UColor(0, 128, 0)
c2 = UColor.from_ucolor(c1)
print(c2)
# UColor(red=0, green=128, blue=0, opacity=255)
Сравнение объектов
Сравнить два объекта UColor можно с помощью операторов == и !=:
c1 = UColor(255, 128, 0)
c2 = UColor(255, 128, 0)
c3 = UColor(255, 128, 10)
print(c1 == c2) # True
print(c1 == c3) # False
print(c1 != c2) # False
print(c1 != c3) # True
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage