我想将 RGB/Hex 格式的颜色转换为最接近的网络安全颜色。
可以在此处找到有关网络安全颜色的详细信息:http ://en.wikipedia.org/wiki/Web_safe_color
这个网站(http://www.colortools.net/color_make_web-safe.html)能够按照我想要的方式进行,但我不确定如何在 Python 中进行操作。有谁可以帮我离开这里吗?
我想将 RGB/Hex 格式的颜色转换为最接近的网络安全颜色。
可以在此处找到有关网络安全颜色的详细信息:http ://en.wikipedia.org/wiki/Web_safe_color
这个网站(http://www.colortools.net/color_make_web-safe.html)能够按照我想要的方式进行,但我不确定如何在 Python 中进行操作。有谁可以帮我离开这里吗?
尽管有点用词不当,但网络安全调色板确实对颜色量化非常有用。它简单、快速、灵活且无处不在。它还允许使用 RGB 十六进制简写,例如#369
代替#336699
. 这是一个演练:
00, 33, 66, 99, CC, FF
. 所以我们可以将最大 RGB 值255
除以五(比总可能值少一)得到一个倍数,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, g, b)
print getNearestWebSafeColor(65, 135, 211)
无需像其他人建议的那样疯狂比较颜色或创建巨大的查找表。:-)
import scipy.spatial as sp
input_color = (100, 50, 25)
websafe_colors = [(200, 100, 50), ...] # list of web-save colors
tree = sp.KDTree(websafe_colors) # creating k-d tree from web-save colors
ditsance, result = tree.query(input_color) # get Euclidean distance and index of web-save color in tree/list
nearest_color = websafe_colors[result]
或者为几个input_color
s添加循环
关于k 维树