求RGB和CMYK的互相转换组件
由于颜色空间存在很大差异,需要对RGB做必要的转换,最好可以达到Photoshop的那种调整效果,GDI+是否有呢,或者有其他的吗?谢谢! 问题点数:50、回复次数:5Top
1 楼haibuo1981(清)回复于 2005-03-29 20:38:16 得分 0
问题不错,帮顶了Top
2 楼tajlolo(tajlolo)回复于 2005-03-29 22:09:17 得分 40
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
我们很容易就看出区别,平均取值的灰度和根据色彩明度增益比例混合的值是完全不同的。
Top
3 楼tajlolo(tajlolo)回复于 2005-03-29 22:11:50 得分 10
mark一下,这是我在网上找的,等我有空了用C#写一下,actionScript是FLASH的脚本语言,很简单的.Top
4 楼Net_Soul(网 魂)回复于 2005-03-30 00:39:41 得分 0
这些颜色空间的转换你可以看看图像处理编程相关的书,里面都有。Top
5 楼lsxr(coolyibai)回复于 2005-03-31 18:02:19 得分 0
RGB2CMYK这个能下载到哇,我看到一个网站是uk的,就是无法开启Top
相关问题
- rgb和cmyk,还有hsb之间的转换
- 谁有简繁转换的组件
- 如何把有源代码的COM组件转换为非COM组件的DLL
- 请教高手,哪位熟悉TranslateColors()的用法,我想用它来作RGB->CMYK的转换
- RGB-HSB-CMYK-Lab转换算法,Photoshop Colorpicker实现方法,欢迎图形图像高手进来讨论!
- 请问谁有‘国标大五玛转换组件’!!!!!?????
- CMYK转RGB?
- 关于把一个字符串作为组件名称转换为相应组件类型的问题(在线)
- 有一组件名为tom如何,我如何使一字符串'tom'转换为组件.再用组件的方法等???
- Delphi中的TStringList转换成COM组件的类型,不知哪一个匹配?





