python:随机生成区分度较高的颜色

1. 生成RPG颜色

参考链接

import colorsys
import randomdef get_n_hls_colors(num):hls_colors = []i = 0step = 360.0 / numwhile i < 360:h = is = 90 + random.random() * 10l = 50 + random.random() * 10_hlsc = [h / 360.0, l / 100.0, s / 100.0]hls_colors.append(_hlsc)i += stepreturn hls_colorsdef ncolors(num):rgb_colors = []if num < 1:return rgb_colorshls_colors = get_n_hls_colors(num)for hlsc in hls_colors:_r, _g, _b = colorsys.hls_to_rgb(hlsc[0], hlsc[1], hlsc[2])r, g, b = [int(x * 255.0) for x in (_r, _g, _b)]rgb_colors.append([r, g, b])return rgb_colors

2. 将RPG颜色转换为十六进制颜色

参考链接

def color(value):digit = list(map(str, range(10))) + list("ABCDEF")if isinstance(value, tuple):string = '#'for i in value:a1 = i // 16a2 = i % 16string += digit[a1] + digit[a2]return stringelif isinstance(value, str):a1 = digit.index(value[1]) * 16 + digit.index(value[2])a2 = digit.index(value[3]) * 16 + digit.index(value[4])a3 = digit.index(value[5]) * 16 + digit.index(value[6])return (a1, a2, a3)

3. 例子

随机生成7种颜色

list(map(lambda x: color(tuple(x)), ncolors(7)))

输出:

['#F71919', '#F6D71D', '#63FE25', '#37F5A3', '#30A0F4', '#4F09FE', '#FD2FDF']


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部