2024-03-29 09:35:09 发布
网友
我正在尝试将RGB值转换为短十六进制格式,我有长版本:
'#{:02x}{:02x}{:02x}'.format(r, g , b)
有没有可能得到#fff而不是#ffffff,而不逐个格式化值以获取第一个数字?你知道吗
编辑: 我的代码不需要太多的颜色精度,所以它接受一个缩短版本的颜色十六进制代码,即每个颜色由一个数字表示,第二个数字被省略。你知道吗
0到15之间的任何值都被认为是0
16到31之间的任何值都被认为是1
等等。。。你知道吗
所以你有这个代码来输出一个24位的rgb值
print('#{:02x}{:02x}{:02x}'.format(r, g , b))
如果您只想在12位上输出rgb值,则该值可以缩短
if (r % 17 == 0 and g % 17 == 0 and b % 17 == 0): print('#{:01x}{:01x}{:01x}'.format(r/17, g/17, b/17)) else: print('#{:02x}{:02x}{:02x}'.format(r, g , b))
如果你用8位编码一个单色颜色,你有256个介于0和255之间的值,所以你有255个间隔。你知道吗
如果你用4位编码一个单色颜色,你有16个介于0和15之间的值,所以你有15个间隔。你知道吗
所以255/15=>;17
所以你有这个代码来输出一个24位的rgb值
如果您只想在12位上输出rgb值,则该值可以缩短
如果你用8位编码一个单色颜色,你有256个介于0和255之间的值,所以你有255个间隔。你知道吗
如果你用4位编码一个单色颜色,你有16个介于0和15之间的值,所以你有15个间隔。你知道吗
所以255/15=>;17
相关问题 更多 >
编程相关推荐