"1138539910l"> 为了说明Adobe的RGB转换CMYK的过程,不得不先涉及到一些色彩转换程序方面的东西。
CMYK_ADOBE_COLORSPACE: r = (k*c)/maxval; g = (k*m)/maxval; b = (k*y)/maxval;
以上是Adobe的CMYK到RGB转换公式,下面再来看看RGB如何转换为CMYK
下面的语句是经过改写的适用于Flash的ActionScript:
// RGB to CMY 色彩转换 function rgbtocmy () { mycyan = 255 - myred; mymagenta = 255 - mygreen; myyellow = 255 - myblue; correctCMYK(); }
// CMY to RGB 色彩转换 function cmytorgb () { myred = 255 - mycyan; mygreen = 255 - mymagenta; myblue = 255 - myyellow; correctCMYK(); }
// CMYK 色彩修正 function correctCMYK () { if (rep_v != "ERR") { var temp = Math.min(Math.min(mycyan, mymagenta), myyellow); if (temp != 0) { temp2 = Math.round((rep_v / 100) * temp); rep_k = Math.round((temp2 / 255) * 100); rep_c = Math.round(((mycyan - temp2) / 255) * 100); rep_m = Math.round(((mymagenta - temp2) / 255) * 100); rep_y = Math.round(((myyellow - temp2) / 255) * 100); } else { rep_c = Math.round((mycyan / 255) * 100); rep_m = Math.round((mymagenta / 255) * 100); rep_y = Math.round((myyellow / 255) * 100); rep_k = 0; } } }
我们知道,RGB和CMYK并不能一一对应,这里面存在的问题是黑色部分的替换值的取值问题。
但是,RGB所可以全部对应的,是CMY格式,其最取值范围是0-255。从色轮上我们可以很容易的了解到这其中的补色计算关系。因此,CMY和RGB的对换 可以说是“无损,可逆转”的。
当从RGB得到相应的CMY之后,我们若要得到CMYK值,就必须定义一个“黑色替换值”,也就是说提取各色通道中的若干成分来形成黑色通道。CMYK的取值是0-100。
这个“黑色替换值”的取值不同,得到的CMYK分量分布也就不同。也就是我们在Photoshop里面可以选择CMYK的分色方案为“UCR”或者“GCR”的不同。
“黑色替换值”越大,CMYK图像在印刷时的偏色几率就越小,但相应的状况是图片彩墨分量在暗黑部位显薄,不够饱和。这种分色方式适用于印刷材质较薄或较粗糙,印刷精度不高的场合。
附注:为什么直接去色和直接转换灰度比Lab的L通道得到的灰度层次显得差?
我们还是来用色彩转换公式说话来比较: L = 0.3R 0.59G 0.11B Gray = (R G B)/3
我们很容易就看出区别,平均取值的灰度和根据色彩明度增益比例混合的值是完全不同的。(作者:quester)
|