我正在创建一个允许在以下颜色空间之间进行转换的库:
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)
NB: HSV和HSL无法直接转换为CMYK,因为它们不是绝对色彩空间。它们需要RGB空间的元素,因此转换为CMYK是有意义的。 (CMYK color to HSV color directly)
现在,我必须实现所有HEX转换:
HEX< - > RGB
HEX< - > HSV
HEX< - > HLS
HEX< - > CMYK
HEX和RGB之间的转换很简单,我实现了它。困扰我的是HEX< - > HSV和HEX< - > HLS转换。 有没有直接的方法将HEX转换为HSV和HSL,或者我必须使用HEX - > RGB - > HSV / HLS?怎么样HEX< - > CMYK?
非常感谢任何帮助。
答案 0 :(得分:1)
通常,HEX值只是连接在一起的每个单独通道值的HEX表示。如果您的所有颜色都由8位表示,并且您正在寻找可以在HTML中使用的HEX表示,那么它将是这样的:
Color 8 bit HEX value --------------------------------- RGB 255,128,0 FF8000 CMYK 255,128,255,128 FF80FF80