在Python中,我从模型的主键(在Django中)生成一个6位十六进制,我可以将其用作页面上div的CSS背景颜色。
如果我有两个靠近的主键,我怎么能产生明显不同的颜色。例如,使用主键24和25可以提供几乎相同的黑色。
>>>format(24, "06X")
000018
和
>>>format(25, "06X")
000019
如果我可以获得与主键增量不同的红色和绿色,那将是一件好事。
答案 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']
颜色看起来是随机的,但它们是确定性的,因此相同的颜色总是来自特定的整数值。