【问题标题】:how convert RGB or CMYK color to percentage CMYK - javascript如何将 RGB 或 CMYK 颜色转换为百分比 CMYK - javascript
【发布时间】:2014-04-08 13:41:55
【问题描述】:

我使用这个 sn-p 在 javascript 中将 RGB 颜色转换为 CMYK:

function RgbToCmyk(R,G,B)
{
    if ((R == 0) && (G == 0) && (B == 0)) {
        return [0, 0, 0, 1];
    } else {
        var calcR = 1 - (R / 255),
            calcG = 1 - (G / 255),
            calcB = 1 - (B / 255);

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

        return [C, M, Y, K];
    }
}

现在我想将返回的 CMYK 转换为百分比 CMYK。

例如,这个 RGB 颜色 (171,215,170) 转换为这个百分比 CMYK (34%, 1%, 42%, 0)

(我使用 Photoshop 进行转换)

编辑: 此 sn-p 的返回值介于 0-1 之间。我发现我必须更改此 sn-p 以返回 0-255 之间的值,然后将值除以 2.55 以将 cmyk 颜色值作为百分比。现在如何更改此代码以返回 0-255 范围内的值??

【问题讨论】:

  • 我看不到 171、215、170 如何转换为 34%、1%、42%、0
  • 我也不知道。我使用 Photoshop 将 rgb 转换为 cmyk 百分比!!

标签: javascript rgb cmyk


【解决方案1】:

CMYK 和 RGB 是两种不同的颜色模型(分别是减法和加法模型),因此您需要一种算法来转换值(以在另一个系统中获得最接近的每个系统的等效值)

我建议你看看这里:

RGB-to-CMYK Color Conversion

使用这样的算法,你应该能够来回转换值,然后得到你只需要做一个简单计算的百分比,例如这个函数将返回给定系统的百分比值:

function get_percentage(value, model){
    if (model == "CMYK")  return value; // CMYK values are 0-100 (if 0-1 just * 100)
    if (model == "RGB" )  return (value/ 255)* 100;
}
// a call with the value of 66 in RGB model:
document.write( get_percentage( 66, "RGB"));

希望对你有所帮助,

【讨论】:

    猜你喜欢
    • 2011-01-26
    • 1970-01-01
    • 2013-08-17
    • 2016-01-11
    • 2014-05-21
    • 2013-01-28
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多