加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将RGB颜色转换为调色板中最接近的颜色(Web安全颜色)?

发布时间:2020-12-20 11:31:10 所属栏目:Python 来源:网络整理
导读:我想将RGB / Hex格式的颜色转换为最接近的Web安全颜色. 有关网页安全颜色的详细信息,请访问:http://en.wikipedia.org/wiki/Web_safe_color 这个网站(http://www.colortools.net/color_make_web-safe.html)能够按照我想要的方式进行,但我不确定如何在Python
我想将RGB / Hex格式的颜色转换为最接近的Web安全颜色.

有关网页安全颜色的详细信息,请访问:http://en.wikipedia.org/wiki/Web_safe_color

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

解决方法

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

> Web安全颜色是RGB三元组,每个值是以下六个中的一个:00,33,66,99,CC,FF.因此,我们可以将最大RGB值255除以5(比总可能值少一个)以获得多个值51.
>通过除以255将通道值标准化(这使其成为0-1而不是0-255的值).
>乘以5,并将结果四舍五入以确保其保持精确.
>乘以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,b)

print getNearestWebSafeColor(65,135,211)

正如其他人所建议的那样,无需疯狂地比较颜色或创建巨大的查找表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读