测试HSL颜色,理想情况下避免与绿色相邻的红色(常见的色盲类型)

时间:2011-01-09 22:20:08

标签: python hsl

受到this page顶部答案的启发,我编写了一个python程序来生成N种不同的HEX颜色。不同之处在于原作者会使用math.random()生成饱和度和亮度,而我使用的是三角函数,我可以保证它总是会给出一个独特的色调,饱和度和放大率。亮度,同时还提供了我可以编程黄色以显得比蓝色更暗的优点,从而允许更好地对比白色背景&黑色文字(我需要它) 我实际使用的代码也通过RGB将HSL转换为HEX代码,以便我可以创建Web颜色代码 我的问题是: -

  1. 使用此型号,我如何保证红色不会出现在绿色旁边?
  2. 生成颜色代码很简单,但我怎样才能轻松看到它们?我目前必须将相当大的文件上传到服务器,该服务器再次下载之前会生成pdf / png / eps。
  3. 我可以通过测试来做到这一点,但有没有人有使用HSL模型生成颜色的经验,这些颜色的对比度最大化在白色背景上,并且颜色顶部带有黑色文字?布鲁斯可以使黑色文字很难看到,黄色有时难以看到白色......
  4. PS。这实际上不是我使用的代码,但一切都从这里开始。完整的python脚本可用here 干杯,
    亚历

    >>> class generate_HSL_colours():
    ...    def __init__( self, N, shift=0, degrees=360 ):
    ...        dict.__init__(self)
    ...        self.N = N
    ...        hues = [ angle for angle in xrange( shift, shift+degrees , degrees / N ) ] # Default hues from 0 --> 360
    ...        self.colours = generate_HSL_colours()
    ...    def generate_HSL_colours(self,angles):
    ...        colours = []
    ...        colour = HSLColour()
    ...        for angle in angles:
    ...            cos_value = math.cos( angle * math.pi / 360 ) ## <== in radians. Degrees == cos( angle/2 ) ; so cos_value goes from 1 to -1, and 0 <= angle < 180.
    ...            ## Could use sin_value too...
    ...            saturation = 90 - (cos_value * 10)  ## Saturation from 80 --> 100
    ...            luminance = 50 + (cos_value * 10)   ## Lightness from 60 --> 40
    ...            HSLColour.hue = hue
    ...            HSLColour.saturation = saturation
    ...            HSLColour.luminance = luminance
    ...            colours.append( HSLColour )
    ...        return colours
    ...
    ...    def __iter__(self):  ## I put this in to answer a different question (see below).
    ...      for colour in self.colours:
    ...          yield repr(colour.hue, colour.saturation, colour.lightness)
    ... 
    

    __iter__函数编写为问题here的答案

1 个答案:

答案 0 :(得分:1)

  1. 嗯?测试,如果你变成接近绿色的红色,你会得到另一种颜色?我不确定这里有什么问题。

  2. 您可以生成PNG并在本地打开它。多数民众赞成可能是最简单的。 PIL是一个很好的图书馆。 http://pypi.python.org/pypi/Pillow/

  3. 不,对不起,我对此一无所知。