【问题标题】:is rgb values equals to cmyk percentage?rgb 值是否等于 cmyk 百分比?
【发布时间】:2010-11-20 06:57:48
【问题描述】:

rgb 数值是否等于 cmyk 百分比?

详情:

我有一些 rgb 值,例如 r-212 g-231 b-211,在 Photoshop 中显示 cmyk 为 40% 34% 80% 0%。我想知道我们能否通过给出 cmyk 百分比来获得相同的 rgb 值?因为我必须在某些特定应用程序中以百分比形式使用 rgb,但我没有在 Photoshop 的帮助下得到它......请简短地告诉我, 是否可以在 Photoshop 的帮助下以百分比形式获得 rgb 值?

【问题讨论】:

标签: photoshop rgb


【解决方案1】:

你的问题不是很清楚,但是:不,rgb 和 cmyk 不一样,看看这张图片,看看它们可以代表的不同颜色空间(而且,显然,rgb 由 3 个值组成,cmyk由 4):

【讨论】:

  • 我的意思是问我有一些 rgb 值,例如 r-212 g-231 b-211,在 Photoshop 中它显示 cmyk 为 40% 34% 80% 0%。我想知道我们能不能通过给出 cmyk 百分比获得相同的 rgb 值?因为我必须在某些特定应用程序中以百分比形式使用 rgb,但我没有在 Photoshop 的帮助下得到它...请简而言之告诉我是否有可能在 Photoshop 的帮助下以百分比形式获得 rgb 值?
  • rbg 是红色、绿色和蓝色 / cmyk 是青色、洋红色和黄色以及键(黑色) - 这显然不一样。此外,cmyk 是减色模型,rgb 是加色模型 - 它们完全不同。你不能像你想要的那样简单地计算一个(而且,正如你在我的图片中看到的,有些颜色不能完全转换)。如果你想找到一种从一个计算到另一个计算的方法,只需十秒钟就可以问谷歌(在这里提问之前你应该做什么)
  • 我希望如此,请查看我编辑的评论。你的问题不是很清楚,也许你应该在上面的问题中添加更多信息和一个例子(不要在评论中发布,所以不是每个人都会看到它)
  • 谢谢 oezi,但请告诉我 photoshop 是否可以做到这一点,我在 Google 中搜索过,他们说 Photoshop 中没有 RGB 的百分比值,所以我就在这里...
【解决方案2】:

您可以在RGBCMYK 色彩空间之间进行近似转换,但它不会完全准确或双向。 两个相关的色彩空间之间存在许多差异在这里,包括它们各自的色域(参见 oezi 答案中的图表)、加法与减法模型,以及 CMYK 空间中黑色(键)的存在。

如果您只是对将颜色从其 RGB 转换为 CMYK 表示的简单方法感兴趣,您可以使用以下代码(在 C# 中任意;随意转换为您选择的语言):

public CmykColor RgbToCmyk(int R, int G, int B)
{
    if ((R < 0) || (R > 255) || (G < 0) || (G > 255) || (B < 0) || (B > 255)) {
        throw new ArgumentException("RGB values must be in the range of 0 to 255");
    }

    if ((R == 0) && (G == 0) && (B == 0)) {
        return new CmykColor(0, 0, 0, 1);
    } else {
        double calcR = 1 - (R / 255);
        double calcG = 1 - (G / 255);
        double calcB = 1 - (B / 255);

        double K = Math.Min(calcR, Math.Min(calcG, calcB));
        double C = (calcR - K) / (1 - K);
        double M = (calcG - K) / (1 - K);
        double Y = (calcB - K) / (1 - K);

        return new CmykColor(Convert.ToInt32(C), Convert.ToInt32(M), Convert.ToInt32(Y), Convert.ToInt32(K));
    }
}

但是您必须决定这个简单的近似值是否会产生“足够接近”满足您需求的结果。 要实现的最重要的事情是,真正的转换完全取决于物理设备/过程,并且需要为您的每个设备(显示 RGB 的显示器、打印 CMYK 的打印机和基材)精确校准颜色配置文件接收 CMYK)。

这有助于解释为什么上述算法(或您可能自行实现的任何其他算法)永远无法匹配 Photoshop 返回的结果,Photoshop 使用颜色配置文件和一些额外的专有算法来处理其转换。如果这种精确度真的很重要,您可以考虑使用类似Windows Color Management APIs 的工具来为您处理转换,这将自动应用当前颜色配置文件,但您可能会发现这些结果与 Photoshop 的不完全匹配要么。

底线是颜色是主观的。正如我在开头提到的,即使你克服了准确性障碍,你仍然不会有一个双向的转换过程。 即使在 Photoshop 中,您也无法在不丢失或更改某些颜色信息的情况下将图像从 RGB 转换为 CMYK,然后再转换回来。


编辑:您在 cmets 中多次提到您只需要“RGB 百分比值”。我假设这意味着 CMYK 百分比,但我想值得指出的是,如果您只想将 RGB 组件的标准 0-255 值转换为 RGB 百分比,您可以将每个值除以 255(最大值),然后乘以 100。因此,例如:

红色 = RGB(255, 0, 0) = 100% 红色,0% 绿色,0% 蓝色

DarkSeaGreen = RGB(143, 188, 143) = 56% 红色,74% 绿色,56% 蓝色

【讨论】:

    【解决方案3】:

    不完全是。 formula 比这复杂一点,因为 CMYK 比 RGB 有更多的组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-21
      • 2020-01-09
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2019-08-21
      相关资源
      最近更新 更多