【问题标题】:C#, How to generate CMYK-compatible only colors in RGBC#,如何在 RGB 中生成仅与 CMYK 兼容的颜色
【发布时间】: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


    【解决方案1】:

    嗯,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 更依赖于硬件。

    【讨论】:

    • 您好,感谢您的回复!这个“babelfish”解决方案正是我想到的第一件事,但我仍然缺少将值从 RGB 转换为 CMYK 的最佳方法(使用提供的 ICC 配置文件)。事实上,这个缺失的部分是我的第一个问题(我在这里链接到)。
    • 是的,我也无法接受 CYMK 可以代表比 RGB 更多的颜色,我不相信这个网站,XD
    【解决方案2】:

    这个问题的答案和C# convert RGB value to CMYK using an ICC profile?的答案类似:

    我不知道有任何 C# API 或库可以实现这一点。但是,如果您有足够的 C/C++ 知识来构建 C# 包装器,我会看到两个选项:

    两个系统都提供 API 来检查一种颜色是否可以在另一个颜色空间中呈现。

    【讨论】:

      猜你喜欢
      • 2017-08-20
      • 1970-01-01
      • 2011-01-26
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 2018-01-13
      相关资源
      最近更新 更多