我需要在我的网页上使用CMYK颜色.有没有办法在CSS中使用CMYK,或者可以使用
JavaScript将CMYK转换为RGB?
编辑:
我的意思是我有CMYK符号的颜色创建算法,我需要在网页上使用它.
解决方法
没有完美的算法方式将CMYK转换为RGB. CYMK是一种减色系统,RGB是一种附加色系.每个都有不同的
gamuts,这意味着有一些颜色不能在其他颜色系统中表示,反之亦然.这两个都是依赖于设备的色彩空间,这意味着您真正获得的颜色取决于您用于再现该颜色的设备,这就是为什么每个设备都有颜色配置文件,以便调整如何将颜色生成更多的“绝对” .
你可以做的最好的是将一个空间的模拟逼近另一个空间.计算机科学的整个领域都是致力于这种工作,而且它是不平凡的.
如果您正在寻找启发式的方法,那么Cyrille提供的链接是非常简单的数学方法,并且容易可逆地接受CYMK颜色并产生合理的RGB传真.
一个非常简单的启发式是将青色映射到0x00FFFF,品红色到0xFF00FF,黄色到0xFFFF00,黑色(键)到0x000000.然后做这样的事情:
function cmykToRGB(c,m,y,k) { function padZero(str) { return "000000".substr(str.length)+str } var cyan = (c * 255 * (1-k)) << 16; var magenta = (m * 255 * (1-k)) << 8; var yellow = (y * 255 * (1-k)) >> 0; var black = 255 * (1-k); var white = black | black << 8 | black << 16; var color = white - (cyan | magenta | yellow ); return ("#"+padZero(color.toString(16))); }
调用cmykToRGB,cmyk范围为0.0到1.0.那应该给你一个RGB颜色代码.但是这又是一个启发式的,这些颜色空间之间的实际对话要复杂得多,并且考虑到更多的变量,然后在这里表示.你的里程可能会有所不同,你得到的颜色可能不会“看起来”