【问题标题】:Color conversion between color spaces颜色空间之间的颜色转换
【发布时间】:2011-10-13 14:08:10
【问题描述】:

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

HSV、HLS、RGB、CMYK、十六进制

到目前为止,我已经实现了以下转换:

HSV -> HLS

HSV -> RGB

HSV -> CMYK (HSV -> RGB -> CMYK :: 见注)

RGB -> HSV

RGB -> HLS

RGB -> CMYK

RGB -> 十六进制

HLS -> RGB

HLS -> HSV

HLS -> CMYK (HLS -> RGB -> CMYK :: 见注)

CMYK -> RGB

CMYK -> HSV (CMYK -> RGB -> HSV :: 见注)

CMYK -> HLS (CMYK -> RGB -> HLS :: 见注)

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

现在,我必须实现所有 HEX 转换:

十六进制 RGB

十六进制 HSV

十六进制 HLS

十六进制 CMYK

HEX 和 RGB 之间的转换很简单,我已经实现了。困扰我的是 HEX HSV 和 HEX HLS 转换。 是否有将 HEX 转换为 HSV 和 HSL 的直接方法,还是必须使用 HEX -> RGB -> HSV/HLS?十六进制 CMYK 呢?

任何帮助将不胜感激。

【问题讨论】:

  • 对此我不确定,但有人告诉我 HEX 只是 RGB 的另一种表示形式。如果是这种情况,那么上面的问题就可以自己回答了。

标签: c# colors


【解决方案1】:

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

颜色 8 位 HEX 值 --------------------------------- RGB 255,128,0 FF8000 CMYK 255,128,255,128 FF80FF80

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 2012-11-27
    • 1970-01-01
    • 2020-11-29
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多