RGB 和 CMYK 相互转换原理

news/2024/10/23 7:32:01/

作者:quester  来自:蓝色理想

Adobe 色彩系统 RGB 和 CMYK 相互转换原理

为了说明 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

我们很容易就看出区别,平均取值的灰度和根据色彩明度增益比例混合的值是完全不同的。


http://www.ppmy.cn/news/826677.html

相关文章

mupdf中CMYK与RGB的转换算法

之前碰到过RGB与CMYK之间转换的问题,网上也没有比较官方的转换公式,不同的软件可能会采用不同的算法,现在mupdf,正好也看到了这样的算法,还是有一定参考价值的,具体算法如下: #define MIN(a,b) ( (a) < (b) ? (a) : (b) ) #define MAX(a,b) ( (a) > (b) ? (a) …

php 将rgb转cmyk,将CMYK颜色值和RGB颜色相互转换的PHP代码

function hex2rgb($hex) { $color str_replace(‘#‘,‘‘,$hex); $rgb array(‘r‘ > hexdec(substr($color,0,2)), ‘g‘ > hexdec(substr($color,2,2)), ‘b‘ > hexdec(substr($color,4,2))); return $rgb; } // www.jb51.net function rgb2cmyk($var1,$g0,$b0)…

Java读取图片 cmyk转rgb

背景 使用java处理图片的时候&#xff0c;比如用ImageIo.read&#xff08;图片&#xff09;时&#xff0c;是不能处理CMYK的图片的&#xff0c;会报错&#xff0c;因此&#xff0c;我们需要将CMYK转化为RGB模式&#xff0c;并且排除转换时的色差问题。 代码 package com.e36…

php cmyk转rgb,用PHP将CMYK格式的JPG文件转为RGB格式 | 学步园

上次说到&#xff0c;CMYK格式的JPG用IE6浏览时无法显示&#xff0c;解决方法是用PS之类的软件转成RGB。但对于网站来说&#xff0c;用户并不知道这么解决&#xff0c;所以还是要程序想办法解决了。解决方法是用imagick或者imagemagick来处理图片&#xff0c;imagick代码如下&a…

ps出现两种颜色模式CMYK/RGB模式

如上图ps窗口出现两种颜色模式&#xff0c;会导致所在页面颜色变暗 解决方案 在视图窗口取消校样颜色就可以了

java cmyk转rgb_Java实现把cmyk格式图片转换为RGB格式图片

这个代码是我在网上找的&#xff0c;可以运行。 package com.pb.util; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; import java.awt.Transparency; import java.awt.color.ColorSpace; import java.awt.image.BufferedIma…

RGB色彩模式与CMYK色彩模式参数转换公式

资料来源于网络&#xff0c;仅供个人学习使用。 1. RGB色彩模式 自然界中绝大部分的可见光谱可以用红、绿和蓝三色光按不同比例和强度的混合来表示。RGB分别代表着3种颜色&#xff1a;R代表红色&#xff0c;G代表绿色、B代表蓝色。RGB模型也称为加色模型&#xff0c;通常用于…

CMYK与RGB

CMYK 1、简介 ①CMYK模式是一种色彩模式&#xff0c;当阳光照射到一个物体上时&#xff0c;这个物体将吸收一部分光线&#xff0c;并将剩下的光线进行反射&#xff0c;反射的光线就是我们所看见的物体颜色的减色色彩模式&#xff0c;同时也是与RGB模式的根本不同之处 ②C&…