这种格式的颜色最大范围是什么:#AABBCC?

时间:2010-10-22 19:10:44

标签: python colors

如何将(N,N,N)格式的颜色转换为#AABBCC(和#AAABBBCCC)?

感谢

8 个答案:

答案 0 :(得分:2)

#FFFFFF,这么简单

每个字符都有0..F个范围。那是0..15。所以两个字符是0..(16*16-1) -> 0-255

要在格式之间进行转换,请考虑:

#AABBCC是三个值AA BB CC。每个值代表一个频道(红色,绿色,蓝色),可以从0255或从0FF或从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)

这是十六进制(基数为16)表示法,其中每个数字从0到15(F)。

十六进制的0到FF范围是十进制的0到255.

如果您想从一个转换为另一个,有很多网站会为您做到这一点 - 例如this one

答案 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语句之后。 ITOH8ITOH12是相应函数使用的常量查找表。

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