def __init__(self, name=None, r=0, g=0, b=0, a=255): if name: if name not in COLOR_CODES_INV: self.logger.warn("Invalid color name: " + name) hexstr = COLOR_CODES_INV.get(name, '000000') self.r = int(hexstr[0:2], 16) self.g = int(hexstr[2:4], 16) self.b = int(hexstr[4:6], 16) self.a = 255 self.name = name else: self.r = r self.g = g self.b = b self.a = a if self.hex not in COLOR_CODES: self.logger.warn("Invalid color hex value: " + self.hex) self.name = COLOR_CODES.get(self.hex, self.hex)
def hex(self): """The hexadecimal representation of the color""" if 'name' in self: return COLOR_CODES_INV.get(self.name) else: return "{0.r:02X}{0.g:02X}{0.b:02X}".format(self)