如何将(N,N,N)格式的颜色转换为#AABBCC(和#AAABBBCCC)?
感谢
答案 0 :(得分:2)
#FFFFFF
,这么简单
每个字符都有0..F
个范围。那是0..15
。所以两个字符是0..(16*16-1) -> 0-255
要在格式之间进行转换,请考虑:
#AABBCC
是三个值AA BB CC
。每个值代表一个频道(红色,绿色,蓝色),可以从0
到255
或从0
到FF
或从0.0
到{ {1}}
如果您有例如#123456,则可以
1.0
一般来说,由12 -> 1*16 + 2 = .. (result in range 0-255)
34 -> 3*16 + 4 = ..
56 -> 5*16 + 6 = ..
组成的两位十六进制数可以通过将XY
乘以16并添加X
来转换为十进制值,从而转换超过9的数字(A,B,C,D,E,F)与其对应物(10,11,12,13,14,15)。例如Y
就是AC
。
(准确地说,通过将第i个数字从右边乘以16 ^ i并将它们全部加在一起来转换n位十六进制数字)
答案 1 :(得分:1)
从00到FF。对于0到255,它是十六进制的。
答案 2 :(得分:0)
RRGGBB RRGGBB
#000000 - #FFFFFF
Black - White
RR = 00 - FF or 0 - 255
GG = 00 - FF or 0 - 255
BB = 00 - FF or 0 - 255
答案 3 :(得分:0)
这些是红绿色和蓝色通道的16位数的十六进制表示。每个通道0到255。 FF(十六进制)等于255十进制。
答案 4 :(得分:0)
正如其他人所说,00
- FF
。
以下是十六进制表示法的HTML颜色概述:
http://www.w3schools.com/Html/html_colors.asp
您可以在此处了解如何将十六进制转换为十进制:
http://en.wikipedia.org/wiki/Hexadecimal
而且,对于Python:
Converting hex color to RGB and vice-versa
或搜索“转换十六进制十进制”
答案 5 :(得分:0)
答案 6 :(得分:0)
使用Python?试试这个:
c = (0., 1., 0.)
rgb = '#%02X%02X%02X' % (c[0] * 255, c[1] * 255, c[2] * 255)
答案 7 :(得分:0)
#AABBCC格式的颜色的最小值和最大值为#000000 ...#FFFFFF,或十进制的0 ... 16777215。每个单独的颜色分量范围为#00 ..#FF,十进制为0..255,需要8位或1字节的存储空间。对于#AAABBBCCC,组件范围分别为#000-#FFF或0..4095,它们需要12位或1½字节的存储空间。
不确定N in(N,N,N)的值范围是什么,但是如果它是0..1那么这两个函数将从它转换为8位组件#AABBCC或12位组件#AAABBBCCC颜色值(不进行舍入)。请注意,每个函数的输出都是一个字符串,其值显示在下面的每个print语句之后。 ITOH8
和ITOH12
是相应函数使用的常量查找表。
ITOH8 = [('%02X' % i) for i in range(0x100)]
rgbconv8 = lambda c: ''.join( ['#'] + [ITOH8[int(v*0xFF)] for v in c] )
print rgbconv8((0., 1., 0.)) #00FF00
print rgbconv8((.2, .6, .75)) #3399BF
ITOH12 = [('%03X' % i) for i in range(0x1000)]
rgbconv12 = lambda c: ''.join( ['#'] + [ITOH12[int(v*0xFFF)] for v in c] )
print rgbconv12((0., 1., 0.)) #000FFF000
print rgbconv12((.2, .6, .75)) #333999BFF