将 RGB 颜色转换为调色板中最接近的颜色(网络安全颜色)?

2023-12-12

我想将 RGB/Hex 格式的颜色转换为其最接近的网络安全颜色。

有关网络安全颜色的详细信息可以在此处找到:http://en.wikipedia.org/wiki/Web_safe_color

本网站(http://www.colortools.net/color_make_web-safe.html)能够按照我想要的方式进行,但我不确定如何在Python中进行。有人可以帮我从这里出去吗?


尽管有点用词不当,但网络安全调色板对于颜色量化确实非常有用。它简单、快速、灵活且无处不在。它还允许 RGB 十六进制简写,例如#369代替#336699。这是一个演练:

  1. Web 安全颜色是 RGB 三元组,每个值都是以下六个值之一:00, 33, 66, 99, CC, FF。所以我们可以除以最大RGB值255乘五(比总可能值少一)以获得倍数,51.
  2. 通过除以标准化通道值255(这使得它的值来自0-1代替0-255).
  3. 乘以5,并对结果进行四舍五入以确保其保持准确。
  4. 乘以51得到最终的网络安全值。总而言之,这看起来像:

    def getNearestWebSafeColor(r, g, b):
        r = int(round( ( r / 255.0 ) * 5 ) * 51)
        g = int(round( ( g / 255.0 ) * 5 ) * 51)
        b = int(round( ( b / 255.0 ) * 5 ) * 51)
        return (r, g, b)
    
    print getNearestWebSafeColor(65, 135, 211)
    

无需像其他人建议的那样疯狂地比较颜色或创建巨大的查找表。 :-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 RGB 颜色转换为调色板中最接近的颜色(网络安全颜色)? 的相关文章