颜色空间之间的颜色转换

时间:2011-10-13 14:08:10

标签: c# colors

我正在创建一个允许在以下颜色空间之间进行转换的库:

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?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

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