def _rgbFind(self, color):
        "see if it matches any existing color in my list"
        C = self.cmykColors
        if isinstance(color, (list, tuple)):
            if len(color) == 3: color = Color(color[0], color[1], color[2])
            elif len(color) == 4:
                color = CMYKColor(color[0], color[1], color[2], color[3])
            else:
                raise ValueError("bad color %s" % repr(color))
        isCMYK = isinstance(color, CMYKColor)
        if not isCMYK:
            if isinstance(color, str):
                color = toColor(color)
            if colorDistance(color, black) < 1e-8:
                isCMYK = 1
                color = PCMYKColor(0, 0, 0, 100, 100)
            elif colorDistance(color, white) < 1e-8:
                isCMYK = 1
                color = PCMYKColor(0, 0, 0, 0, 100)
        rgb = color.red, color.green, color.blue
        if isCMYK:
            if color not in C: C.append(color)
            return self._setCMYKColor(color)
        else:
            for c in C:
                if (c.red, c.green, c.blue) == rgb:
                    return self._setCMYKColor(c)

        return '%s setrgbcolor' % fp_str(rgb)
示例#2
0
    def _rgbFind(self,color):
        "see if it matches any existing color in my list"
        C = self.cmykColors
        if isinstance(color,(list,tuple)):
            if len(color)==3: color = Color(color[0],color[1],color[2])
            elif len(color)==4: color = CMYKColor(color[0],color[1],color[2],color[3])
            else: raise ValueError("bad color %s"%repr(color))
        isCMYK = isinstance(color, CMYKColor)
        if not isCMYK:
            if isinstance(color,str):
                color = toColor(color)
            if colorDistance(color,black)<1e-8:
                isCMYK = 1
                color = PCMYKColor(0,0,0,100,100)
            elif colorDistance(color,white)<1e-8:
                isCMYK = 1
                color = PCMYKColor(0,0,0,0,100)
        rgb = color.red, color.green, color.blue
        if isCMYK:
            if color not in C: C.append(color)
            return self._setCMYKColor(color)
        else:
            for c in C:
                if (c.red, c.green, c.blue) == rgb:
                    return self._setCMYKColor(c)

        return '%s setrgbcolor' % fp_str(rgb)
示例#3
0
    def test1(self):
        "Test colorDistance function."

        cols = list(colors.getAllNamedColors().values())
        for col in cols:
            d = colors.colorDistance(col, col)
            assert d == 0
示例#4
0
    def test1(self):
        "Test colorDistance function."

        cols = colors.getAllNamedColors().values()
        for col in cols:
            d = colors.colorDistance(col, col)
            assert d == 0
示例#5
0
def getLinkColor():
    color1 = getColor1()
    distance = colors.colorDistance(color1, colors.white) / sqrt(3)
    return colors.Blacker(color1, distance)