【发布时间】:2011-07-11 10:50:00
【问题描述】:
跟进我的第一个问题 (C# convert RGB value to CMYK using an ICC profile?)
我想知道是否/如何生成仅在 CMYK 中具有直接等效项的 RGB 值?
有点像只有 256 色调色板的旧 gif 格式,是否可以生成受调色板约束的 RGB 值(这里是 CMYK 一个)?
谢谢
【问题讨论】:
标签: c# printing colors rgb cmyk
跟进我的第一个问题 (C# convert RGB value to CMYK using an ICC profile?)
我想知道是否/如何生成仅在 CMYK 中具有直接等效项的 RGB 值?
有点像只有 256 色调色板的旧 gif 格式,是否可以生成受调色板约束的 RGB 值(这里是 CMYK 一个)?
谢谢
【问题讨论】:
标签: c# printing colors rgb cmyk
嗯,CMYK 基于 0-100 的比例,与 0-255 的 RGB 不同。因此,CMYK 中只有 100 个“灰度”,而 RGB 中只有 256 个。
尝试“babelfishing”输入 RGB 值;使用您喜欢的任何转换算法将其转换为 CMYK,然后将其转换回 RGB 以获得“最接近的匹配”。只要您可以将这个最接近的匹配转换为 CMYK 并返回到令人作呕的状态,您就会找到一个 RGB 值,它将 1:1 转换为 RGB。如果颜色一直偏斜,则转换可能有问题,无论哪种方式。我不知道RGB-CMYK转换的具体细节,也不是只有一种算法。
编辑:检查此 RGB->CMYK 转换器底部的备注:http://web.forret.com/tools/color.asp?R=85&G=85&B=68。据此,由于黑色的额外维度,CMYK 可以表示比 RGB 更多的颜色。我称之为恶作剧,但我想这又取决于您的特定转换器实现。 Wikipedia 简单地说它是“困难的”,因为 CMYK 值比 RGB 更依赖于硬件。
【讨论】:
这个问题的答案和C# convert RGB value to CMYK using an ICC profile?的答案类似:
我不知道有任何 C# API 或库可以实现这一点。但是,如果您有足够的 C/C++ 知识来构建 C# 包装器,我会看到两个选项:
两个系统都提供 API 来检查一种颜色是否可以在另一个颜色空间中呈现。
【讨论】: