python - 测试 HSL 颜色,最好避免红色与绿色相邻(常见色盲类型)

标签 python hsl

受到 this page 上的最佳答案的启发我编写了一个 python 程序来生成 N 种不同的十六进制颜色。不同之处在于,原作者将使用 math.random() 生成饱和度和亮度,而我使用三角函数,我可以保证它总是给出独特的色调、饱和度和亮度,同时还提供了我 可以将黄色编程为比蓝色更暗,从而与白色背景和黑色文本形成更好的对比度(我需要它的目的)。
我实际使用的代码还通过 RGB 将 HSL 转换为 HEX 代码,以便我可以创建 Web 颜色代码。
我的问题是:-

  1. 使用此模型,如何保证红色不会出现在绿色旁边?
  2. 生成颜色代码很容易,但我怎样才能轻松地看到它们呢?我目前必须将相当大的文件上传到生成 pdf/png/eps 的服务器,然后才能再次下载。
  3. 我可以通过测试来做到这一点,但是有人有使用 HSL 模型生成颜色的经验吗?其对比度在白色背景上最大化,颜色顶部有黑色文本?蓝色会使黑色文本很难看清,而黄色有时在白色的衬托下很难看清......

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. 呃?测试一下,如果你的红色接近绿色,你会得到另一种颜色吗?我不确定这里的问题是什么。

  2. 您可以生成 PNG 并在本地打开它。这可能是最简单的。 PIL 是一个很好的库。 http://pypi.python.org/pypi/Pillow/

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

关于python - 测试 HSL 颜色,最好避免红色与绿色相邻(常见色盲类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4642219/

相关文章:

python - 用于身份验证和登录的 Webapp2

python - 无法运行已安装的库

python - 使用 numpy 和 pandas 如何计算百分比并使用标准并给它负号

javascript - 如何使用 JavaScript 以非随机方式生成一定范围内的数字?

python - 将 RGB 数组转换为 HSL

python - 如何以编程方式判断网络服务器上是否存在我要求的文件名?

python - 如何根据python中的Where函数获取两列值

c++ - QColor hsl 色调精度

javascript - 使用 javascript 获取 hsl 颜色

algorithm - 将 HSL 转换为 RGB 时出现问题