示例#1
0
def rgb2Name(rgb):
    """Method to convert RGB to a name. Answer None if no name can be found.

    >>> rgb2Name((0.2, 0.3, 0.4)) in ('darkslategray', 'darkslategrey')
    True
    >>> color(spot=300).name in ('teal', 'darkcyan')
    True
    >>> color(spot=0).name
    'black'
    >>> color(rgb=(0.4, 0.5, 0.6)).name in ('slategrey', 'slategray')
    True
    >>> color(cmyk=(0.2, 0.2, 0.6, 0.2)).name
    'darkkhaki'
    >>> rgb = (0.4, 0.5, 0.6)
    >>> color(rgb=rgb).name == rgb2Name(rgb)
    True
    """
    rgbName = None
    r, g, b = rgb
    error = None  # Max error for the 3 colors
    for name, value in CSS_COLOR_NAMES.items():
        nr, ng, nb = int2Rgb(value)
        e = abs(nr - r) + abs(ng - g) + abs(nb - b)
        if error is None or e < error:
            rgbName = name
            error = e
    return rgbName
示例#2
0
    def _get_name(self):
        u"""Answer the name of the CSS color that is closest to the current
        self.rgb

        >>> Color('red').name
        'red'
        >>> Color(0x00fa9a).name
        'mediumspringgreen'
        >>> Color(0x800000).name
        'maroon'
        >>> Color(0x828085).name # Real value is 0x808080
        'gray'
        >>> Color(0xffe4e1).name, Color(0xffe4f1).name, Color(0xffe4f8).name
        ('mistyrose', 'mistyrose', 'lavenderblush')
        """
        if self._name is None:
            r, g, b = self.rgb
            error = 3  # Max error for the 3 colors
            for name, value in CSS_COLOR_NAMES.items():
                nr, ng, nb = self.int2Rgb(value)
                e = abs(nr - r) + abs(ng - g) + abs(nb - b)
                if e < error:
                    self._name = name
                    error = e
        return self._name
示例#3
0
def name2Rgb(name):
    """Method to convert a name to RGB. Answer None if no RGB can be found.

    >>> name2Rgb('red')
    (1, 0, 0)
    >>> name2Rgb('white')
    (1, 1, 1)
    >>> colorName = 'slategray'
    >>> # Get nearest rounded (r,g,b) for this spot color.
    >>> rgb = name2Rgb(colorName)
    >>> '%0.2f, %0.2f, %0.2f' % rgb
    '0.44, 0.50, 0.56'
    """
    return int2Rgb(CSS_COLOR_NAMES.get(name))