我正在生成随机的不同颜色,并且如下所示:
import random
import numpy as np
random_number = np.random.randint(0,16777215)
hex_number = str(hex(random_number))
hex_number ='#'+ hex_number[2:]
但这会产生较浅的阴影而不是深色的阴影。我该如何修改它以生成更深的阴影。感谢您的帮助。
答案 0 :(得分:0)
正如评论所建议的那样,尝试不同的色彩空间可能是一个更好的主意。例如,您可以使用HSV色彩空间和index === filteredList.length
提供的某些功能。
matplotlib
如果降低import numpy as np
from matplotlib.colors import hsv_to_rgb, to_hex
def rand_col(min_v=0.5, max_v=1.0):
hsv = np.concatenate([np.random.rand(2), np.random.uniform(min_v, max_v, size=1)])
return to_hex(hsv_to_rgb(hdv))
参数,则颜色会变深。
答案 1 :(得分:0)
您可以使用以下逻辑使hex
颜色变暗(使用色相,亮度,饱和度(HLS)
表示):
import numpy as np
from colormap import rgb2hex, rgb2hls, hls2rgb
# pip install colormap
# pip install easydev
def hex_to_rgb(hex):
hex = hex.lstrip('#')
hlen = len(hex)
return tuple(int(hex[i:i+hlen//3], 16) for i in range(0, hlen, hlen//3))
def adjust_color_lightness(r, g, b, factor):
h, l, s = rgb2hls(r / 255.0, g / 255.0, b / 255.0)
l = max(min(l * factor, 1.0), 0.0)
r, g, b = hls2rgb(h, l, s)
return rgb2hex(int(r * 255), int(g * 255), int(b * 255))
def darken_color(r, g, b, factor=0.1):
return adjust_color_lightness(r, g, b, 1 - factor)
random_number = np.random.randint(0,16777215)
hex_number = str(hex(random_number))
hex_number ='#'+ hex_number[2:]
r, g, b = hex_to_rgb(hex_number) # hex to rgb format
print(darken_color(r, g, b))
在上面,您可以根据需要设置factor
参数来调整颜色的明暗度。