是否有生成具有相同灰度值的随机颜色的公式?

Is there a formula to generate random colors that have the same grayscale value?

是否有 python3 函数或公式来生成具有相同灰度值的随机 RGB 颜色?

例如50AA1E、2B94FF、D16E00,它们的灰阶值为808080

您可以使用原始公式进行 RGB->GS 转换,求解任何颜色分量(例如,B)。随机选择R和G,计算B。重复直到B在允许范围内:

B = -1
while not (0 <= B <= 255):
    R = randint(0, 255)
    G = randint(0, 255)
    B = int((gray - (R * 0.3 + G * 0.59)) / 0.11)

除非你真的很倒霉,否则循环会终止。