Beispiel #1
0
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])
Beispiel #2
0
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])
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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()
Beispiel #6
0
def raw_rgb(hex_color):
    rgb_color = RGBColor()
    rgb_color.set_from_rgb_hex(hex_color)
    return '{} {} {}'.format(*rgb_color.get_value_tuple())
Beispiel #7
0
def raw_rgb(hex_color):
    rgb_color = RGBColor()
    rgb_color.set_from_rgb_hex(hex_color)
    return '{} {} {}'.format(*rgb_color.get_value_tuple())