def scaled_rgb(hex_color, component=None, factor=1.0): rgb_color = RGBColor() rgb_color.set_from_rgb_hex(hex_color) values = list(map(lambda x: factor * (x / 255), rgb_color.get_value_tuple())) if component is None: return '{} {} {}'.format(*rgb_color.get_value_tuple()) else: comp_idx = ('R', 'G', 'B').index(component) return '{}'.format(values[comp_idx])
def scaled_rgb(hex_color, component=None, factor=1.0): rgb_color = RGBColor() rgb_color.set_from_rgb_hex(hex_color) values = list( map(lambda x: factor * (x / 255), rgb_color.get_value_tuple())) if component is None: return '{} {} {}'.format(*rgb_color.get_value_tuple()) else: comp_idx = ('R', 'G', 'B').index(component) return '{}'.format(values[comp_idx])
def db_insert(filename, url, palette, rssid): if db[COLLECTION].find({'opedid':filename}).count() > 0: return doc = {} doc['opedid'] = filename doc['url'] = url # rgbs = [] labs = [] prominences = [] for color in palette.colors: # rgbs.append(list(color.value)) prominences.append(color.prominence) lab_color = RGBColor(*color.value).convert_to('lab') labs.append(list(lab_color.get_value_tuple())) # Rotate arrays # rgbs = zip(*rgbs) labs = zip(*labs) #doc['r'] = rgbs[0] #doc['g'] = rgbs[1] #doc['b'] = rgbs[2] doc['l'] = labs[0] doc['a'] = labs[1] doc['b'] = labs[2] doc['prominence'] = prominences doc['rssid'] = rssid db[COLLECTION].insert(doc, safe=True)
def db_insert(filename, url, palette, rssid): if db[COLLECTION].find({'opedid': filename}).count() > 0: return doc = {} doc['opedid'] = filename doc['url'] = url # rgbs = [] labs = [] prominences = [] for color in palette.colors: # rgbs.append(list(color.value)) prominences.append(color.prominence) lab_color = RGBColor(*color.value).convert_to('lab') labs.append(list(lab_color.get_value_tuple())) # Rotate arrays # rgbs = zip(*rgbs) labs = zip(*labs) #doc['r'] = rgbs[0] #doc['g'] = rgbs[1] #doc['b'] = rgbs[2] doc['l'] = labs[0] doc['a'] = labs[1] doc['b'] = labs[2] doc['prominence'] = prominences doc['rssid'] = rssid db[COLLECTION].insert(doc, safe=True)
def color(v, echelle, tohex=True): """ Retourne la couleur d'une valeur intermediaire. """ # Utilisation d'un régression linéaire des valeurs HSV (hue, saturation, value) # de 2 couleurs (même méthode que l'algorithme Lab-LCH d'ArcGIS). keys = echelle.keys() keys.sort() if v < min(keys): v = min(keys) if v > max(keys): v = max(keys) if v in keys: rgb = RGBColor(*echelle[v]) if tohex: return rgb.get_rgb_hex() else: return rgb.get_value_tuple() kmin, kmax = None, None vmin, vmax = None, None for i in range(len(keys) - 1): if v > keys[i] and v < keys[i + 1]: kmin, kmax = i, i + 1 vmin, vmax = keys[i], keys[i + 1] break if kmin is None or kmax is None or vmin is None or vmax is None: return None rgb_a = RGBColor(*echelle[vmin]) hsv_a = rgb_a.convert_to('hsv') rgb_b = RGBColor(*echelle[vmax]) hsv_b = rgb_b.convert_to('hsv') xa = keys[kmin] xb = keys[kmax] xi = v hi = eq(xi, xa, xb, hsv_a.hsv_h, hsv_b.hsv_h) si = eq(xi, xa, xb, hsv_a.hsv_s, hsv_b.hsv_s) vi = eq(xi, xa, xb, hsv_a.hsv_v, hsv_b.hsv_v) hsv_i = HSVColor(hi, si, vi) rgb_i = hsv_i.convert_to('rgb') if tohex: return rgb_i.get_rgb_hex() else: return rgb_i.get_value_tuple()
def raw_rgb(hex_color): rgb_color = RGBColor() rgb_color.set_from_rgb_hex(hex_color) return '{} {} {}'.format(*rgb_color.get_value_tuple())
def raw_rgb(hex_color): rgb_color = RGBColor() rgb_color.set_from_rgb_hex(hex_color) return '{} {} {}'.format(*rgb_color.get_value_tuple())