【问题标题】:Convert single 8 bit value (0-255) to 3, 8 bit values将单个 8 位值 (0-255) 转换为 3、8 位值
【发布时间】:2021-03-24 10:48:16
【问题描述】:

好吧,我能真正解释这一点的最好方法是在这个网站上https://www.colorspire.com/rgb-color-wheel/ 第一次加载网站时有一个色轮,不要移动方块中的小指针来选择内容。只需转到您可以拖动并拖动它的栏,您会看到 r g b 值发生变化,但您还会注意到其中一个值始终为 0,我如何重新创建它,而不是您拖动输入的栏单个 8 位值(共 255 个),因此我可以使用该值运行程序,比如说 170,它会以某种方式将其映射到某种颜色。

【问题讨论】:

    标签: python math colors rgb


    【解决方案1】:

    当您移动条时,您实际上是在改变色调,所以试试这个

    import colorsys
    color = input("Enter a value from 0-359:")
    test_color = colorsys.hsv_to_rgb(color/360.0, 1, 1)
    

    参考

    HSV to RGB Color Conversion

    【讨论】:

    • 这有点像我想要的,我希望输入不超过 255,而不是每个值不超过 1,而是需要不超过 255
    • 是的,但这不是色调的工作原理。颜色条是 0-359 而不是 1-255 的数字。 (RGB 为 1-255)
    • 我只是将每个值乘以 255 然后做了 math.trunc()
    • 我刚才更具体了,而不是做“test_color = colorsys.hsv_to_rgb(int(value)/360.0, 1, 1)”我做了“test_color = colorsys.hsv_to_rgb(int(值)/255.0, 1, 1)"
    • 是的,这只是我测试时的代码,我将其缩短了。
    【解决方案2】:
        test_color = colorsys.hsv_to_rgb(int(value)/255.0, 1, 1)
        r, g, b = test_color
        r = (r * 255)
        r = math.trunc(r)
        g = (g * 255)
        g = math.trunc(g)
        b = (b * 255)
        b = math.trunc(b)
        fg.orange = Style(RgbFg(r, g, b))
        msg = fg.orange + str(f"  r = {r}, g = {g}, b = {b}")
        print(msg)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 2012-07-01
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2011-07-24
      • 2012-08-04
      相关资源
      最近更新 更多