2011-10-13 104 views
2

我创建一个库,允许下列颜色空间之间的转换:颜色转换

HSV,HLS,RGB,CMYK,HEX

到现在为止,我有以下的转换来实现:

HSV - > HLS

HSV - > RGB

HSV - > CMYK (HSV - > RGB - > CMYK ::看到NB)

RGB - > HSV

RGB - > HLS

RGB - > CMYK

RGB - > HEX

HLS - > RGB

HLS - > HSV

HLS - > CMYK (HLS - > RGB - > CMYK ::看到NB)

CMYK - > RGB

CMYK - > HSV (CMYK - > RGB - > HSV ::看到NB)

CMYK - > HLS ( CMYK - > RGB - > HLS ::看到NB)

注: HSV和HSL不能直接转换为CMYK,因为他们没有绝对的色彩空间。它们需要RGB空间的元素,以便转换为CMYK是有意义的。眼下(CMYK color to HSV color directly

,我要实现所有的十六进制转换:

HEX < - > RGB

HEX < - > HSV

HEX < - > HLS

HEX < - > CMYK

HEX和RGB之间的转换i很简单,我已经实施了。困扰我的是HEX < - > HSV和HEX < - > HLS转换。 有没有直接的方法将HEX转换为HSV和HSL,还是我必须使用HEX - > RGB - > HSV/HLS?怎么样HEX < - > CMYK?

任何帮助将不胜感激。

+1

我不知道这一点,但有人告诉我HEX只是RGB的另一种表示形式。如果是这样的话,那么上面的问题就回答了。 –

回答

1

通常,HEX值只是将每个单独通道值连接在一起的HEX表示。如果你所有的颜色都是由8位表示,您正在寻找可以在HTML中使用它会是这样一个十六进制表示:

 
Color 8 bit   HEX value 
--------------------------------- 
RGB 255,128,0  FF8000 
CMYK 255,128,255,128 FF80FF80