首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将RGB或CMYK颜色转换为百分比CMYK - javascript

如何将RGB或CMYK颜色转换为百分比CMYK - javascript
EN

Stack Overflow用户
提问于 2014-04-08 13:41:55
回答 2查看 6.5K关注 0票数 5

我使用这个片段在javascript中将RGB颜色转换为CMYK:

代码语言:javascript
复制
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进行转换)

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

EN

Stack Overflow用户

发布于 2022-11-11 12:00:48

我使用这个函数:

代码语言:javascript
复制
function rgb2cmyk([rgb, a]: [number[], number]): [number[], number] {
  const r = rgb[0] / 255;
  const g = rgb[1] / 255;
  const b = rgb[2] / 255;

  const k = +(1 - Math.max(r, g, b)).toFixed(1);
  const c = +((1 - r - k) / (1 - k) || 0).toFixed(1);
  const m = +((1 - g - k) / (1 - k) || 0).toFixed(1);
  const y = +((1 - b - k) / (1 - k) || 0).toFixed(1);

  return [[c * 100, m * 100, y * 100, k * 100], a];
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22938896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档