繁体   English   中英

RGB到CMYK的转换算法

[英]RGB to CMYK Conversion Algorithm

我需要像在Adobe Photoshop / Mac ColorPicker中一样将RGB值转换为CMYK。 在CMYK中无法获得RGB中的所有颜色。 但是我发现的算法,例如rgbtocmyk并没有产生我期望的结果。 例如:CMYK不支持rgb(0,0,255),这是最纯的蓝色。 在这种情况下,我需要找到CMYK色域支持的最接近的蓝色。 您能给我任何参考或使用的算法吗?

那明显是错的。 所有RGB颜色都可以表示为CMYK,但不能相反。 您发送的链接有效,但似乎三个R,G,B分量的范围是[0,255],而四个C,M,Y,K分量的范围是[0,1]。 通常,RGB坐标表示为整数,CMYK表示为浮点数。 您可以在网上找到的几乎所有算法都可以像这样工作。

PS:这是该算法的示例实现, http://www.javascripter.net/faq/rgb2cmyk.htm

编辑

恐怕要详细解释可能很久,但是现在我们开始吧。 一方面,您拥有每种颜色的成分。 另一方面,您可以在设备上显示某种颜色。 由于每种颜色在物理上都是波长的函数,因此RGB表示是该函数的粗略近似。

当您需要匹配设备上的某种颜色时,就会出现问题。 例如,对于相同的RGB颜色,两个屏幕可以显示略有不同的颜色。 为了克服将颜色与给定设备上的显示值进行感知匹配的困难,存在所谓的颜色配置文件,该配置文件指定设备如何匹配RGB(或CMYK或LAB或您使用的任何颜色系统)坐标与实际显示的颜色。

据我了解情况,您要执行的转换涉及颜色配置文件。 此外,当我们说RGB时,我们通常是在谈论屏幕,而当我们说CMYK时,我们通常在谈论打印机(CMYK组件通常指定打印机用来代表颜色的墨水颜料的数量)。 Wikipedia条目可以为您提供更多有关此的信息: https : //en.wikipedia.org/wiki/Color_space

最后,让我指出,您要执行的转换涉及探索与所涉及设备相关联的颜色配置文件,并且这并非微不足道。 但是,RGB-> CMYK转换的第一步是使用我们首先讨论的简单算法进行直接转换。 然后,根据需要应用颜色校正。

没有简单的CMYK颜色转换。 CMYK颜色的解释取决于打印条件(墨水,纸张,打印机,打印过程等的组合)。 这是因为油墨(或染料或任何其他着色剂)的混合物描述起来非常复杂,与光的混合物(RGB所基于的混合物)一样多,甚至更多。 在实践中,通过打印CMYK色块并在控制的光照和测量条件下使用颜色测量设备测量这些色块来校准和表征给定的打印条件。 只有在良好描述了打印条件的情况下,该打印条件才能在RGB和CMYK之间进行准确的转换。 另请参阅我的文章“ CMYK和其他墨水混合物颜色模型 ”部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM