ukitai.common.Color 源代码

import math
from ukitai.common import *


[文档]class Color(object): """ 定义颜色类型 """ color = 0 def __init__(self, color=0): self.color = color
[文档] def red(self) -> int: """ 获取颜色值红色分量 返回值说明: (int): 范围[0, 255] """ return (self.color & 0x00FF0000) >> 16
[文档] def green(self) -> int: """ 获取颜色值绿色分量 返回值说明: (int): 范围[0, 255] """ return (self.color & 0x0000FF00) >> 8
[文档] def blue(self) -> int: """ 获取颜色值蓝色分量 返回值说明: (int): 范围[0, 255] """ return self.color & 0x000000FF
[文档]def create_color_rgb(red: int, green: int, blue: int) -> Color: """根据红, 绿, 蓝分量值创建颜色 参数值说明: red (int): 红通分量 green (int): 绿通分量 blue (int): 蓝通分量 返回值说明: (Color): 返回 Color 对象 """ v_red = Common.num_normal(red, 255, 0) v_green = Common.num_normal(green, 255, 0) v_blue = Common.num_normal(blue, 255, 0) v = v_red << 16 | v_green << 8 | v_blue return Color(v)
def __create_color_hsv(hue: int, saturation: int, value: int): """[summary] 参数值说明: hue (int): 色调值, 范围: [0, 360] saturation (int): 饱和度, 范围: [0, 100] value (int): 明度, 范围: [0, 100] """ h = int(hue) % 360 s = Common.num_normal(saturation, 100, 0) * 0.01 v = Common.num_normal(value, 100, 0) * 0.01 i = math.floor(h / 60) f = (h / 60) - i p = v * (1 - s) q = v * (1 - (s * f)) t = v * (1 - (s * (1 - f))) if i == 0: rr = (v, t, p) elif i == 1: rr = (q, v, p) elif i == 2: rr = (p, v, t) elif i == 3: rr = (p, q, v) elif i == 4: rr = (t, p, v) else: rr = (v, p, q) result = Color.create_color_rgb(math.floor(rr[0] * 255), math.floor(rr[1] * 255), math.floor(rr[2] * 255)) # print("===== create_color_hsv:", result.color) return result
[文档]def create_color_hsv(hue_percent: int, saturation: int, value: int) -> Color: """根据色调, 饱和度, 亮度值创建颜色 参数值说明: hue_percent (int): 色调值百分比, 范围: [0, 100] saturation (int): 饱和度, 范围: [0, 100] value (int): 明度, 范围: [0, 100] 返回值说明: (Color): 返回 Color 对象 """ p = Common.num_normal(hue_percent, 100, 0) return __create_color_hsv(int(p * 360 * 0.01), saturation, value)
RED = Color(0x00FF0000) ORANGE = Color(0x00FF8000) YELLOW = Color(0x00FFF000) GREEN = Color(0x0000FF00) CYAN = Color(0x0000FFFF) BLUE = Color(0x000000FF) PURPLE = Color(0x00FF00FF) BLACK = Color(0x00000000) WHITE = Color(0x00FFFFFF) GREY = Color(0x00BEBEBE)