如何将CMYK转换成RGB

cql0007 2003-10-08 10:26:36
知道CMYK四个参数,如何将其转换成RGB的三个参数了?
谢谢!
...全文
12736 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
半宫佳丽 2003-12-10
  • 打赏
  • 举报
回复
不错
cql0007 2003-10-31
  • 打赏
  • 举报
回复
多谢老兄了,CMYK的参数是从文件中得来的,格式为0-100之间,应该都是小数格式的

我已经另外找到了公式了,试过已经是行的:
R = 255*(100-C)*(100-K)/10000;
G = 255*(100-M)*(100-K)/10000;
B = 255*(100-Y)*(100-K)/10000;

多谢老兄了,结贴了/
cql0007 2003-10-30
  • 打赏
  • 举报
回复
今天才得以又了很多数据进去试老兄的公式,发现该公式有问题啊:

Red=1-minimum(1,Cyan*(1-Black)+Black)
Green=1-minimum(1,Magenta*(1-Black)+Black)
Blue=1-minimum(1,Yellow*(1-Black)+Black)

在我的应用中,被转换的CMYK的K大部的值都是0,这样,代入上面的公式,当K=0时,min(1,**)这个表达式中一般都会返回的是1,这样,得到的RGB大部分会为0值了
或者当K有值时,1-K会为一个较大的负值,这个负值可能为-100,这个值就被返回给RGB,用它再去*255,那个值就大得不得了了,这个结果也肯定不正常了.
麻烦老兄再帮忙看看,谢谢!
mct1025 2003-10-30
  • 打赏
  • 举报
回复
你用什么公式得到的CMYK ?
cql0007 2003-10-10
  • 打赏
  • 举报
回复
那倒是的,由RGB转换为CMYK后,颜色肯定没有RGB的鲜艳了,是有不少差别的.不知这个公式中的误差会不会有可能就是弥补那个原来的误差的了?呵呵,如果是,那就太好了.
现在郁闷的是,我那个CMYK的具体的那些值还要经过一个转换才出来,目前还没出来,所以还不能在实际应用中去测试这个公式,看看色彩到底变了多少.

非常感谢老兄了.
mct1025 2003-10-10
  • 打赏
  • 举报
回复
好像RGB 和 CMYK 之间转换都是有误差的,不是无损的
cql0007 2003-10-10
  • 打赏
  • 举报
回复
TO: mct1025(macuntao) :
上面你给的方程我代了一些数进入试过了,发现这个公式是一些近似的算法,得到的RBG值和真正的RGB值已经差不多了,但除了0或255这些值外,其余的都会有些误差的.
cql0007 2003-10-09
  • 打赏
  • 举报
回复
可是RGB的值都是挺大的值的啊,我举个例子:
白色:RGB分别为(255,255,255);而用CMYK表示为:CMYK(0%,0%,0%,0%)
黑色:RGB分别为(0,0,0);而用CMYK表示为:CMYK(63%,52%,51%,100%);
红色:RGB为(255,0,0);而CMYK为:(0%,87%,99%,0)

再次麻烦老兄了.
mct1025 2003-10-09
  • 打赏
  • 举报
回复
那个公式是我从网上找到的,可能有问题,我也想不通为什么是8bit

试试这个
CMYK -> RGB
Red=1-minimum(1,Cyan*(1-Black)+Black)
Green=1-minimum(1,Magenta*(1-Black)+Black)
Blue=1-minimum(1,Yellow*(1-Black)+Black)

assume that C, M, Y, K, R, G, and B have a range of [0;1].
cql0007 2003-10-09
  • 打赏
  • 举报
回复
谢过老兄先了,我先试试看
mct1025 2003-10-09
  • 打赏
  • 举报
回复
得到的Red、Green、Blue是[0。。1]

用RGB(r*255,g*255,b*255)得到RGB值
flyfash 2003-10-08
  • 打赏
  • 举报
回复
科达在做。
mct1025 2003-10-08
  • 打赏
  • 举报
回复
如果你的CMYK的各个分量是8bit的,可以使用下面的公式:
R = (255 - C) * ((255 - K) / 255)
G = (255 - M) * ((255 - K) / 255)
B = (255 - Y) * ((255 - K) / 255)
cql0007 2003-10-08
  • 打赏
  • 举报
回复
如果你的CMYK的各个分量是8bit的

请问老兄,各个分量是8bit是什么意思了?我得到的值都是些百分值的啊,最大的值也就是1啊,不知如果使用该公式了?
flyccloud 2003-10-08
  • 打赏
  • 举报
回复
gz
cql0007 2003-10-08
  • 打赏
  • 举报
回复
老兄给的公式好象并不正确啊,CMYK的值一般都是个百分数,也就是0.几,(我直接取百分号前的数也一样).与255下减后根本不起什么作用啊,得出的RGB的值不正确啊

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧