从主键生成CSS背景颜色,该主键与下一个主键完全不同

时间:2011-10-05 09:58:57

标签: python css

在Python中,我从模型的主键(在Django中)生成一个6位十六进制,我可以将其用作页面上div的CSS背景颜色。

如果我有两个靠近的主键,我怎么能产生明显不同的颜色。例如,使用主键24和25可以提供几乎相同的黑色。

>>>format(24, "06X")
000018

>>>format(25, "06X")
000019

如果我可以获得与主键增量不同的红色和绿色,那将是一件好事。

2 个答案:

答案 0 :(得分:0)

最好不要从键生成颜色。 但是如果你想/需要,你可以将数字概括为24位。然后反转这个数字。最低位现在变得最高。

这样,增量1总是值得注意的,虽然相距较远的数字可能仍然非常相同。

答案 1 :(得分:0)

import md5, struct

def pseudorandom_color_from_int(value):
  return md5.md5(struct.pack('i', value)).hexdigest()[:6]

使用示例:

>>> print map(pseudorandom_color_from_int, (24, 25, 26))
['503533', '2b197a', 'ed69df']

颜色看起来是随机的,但它们是确定性的,因此相同的颜色总是来自特定的整数值。