我目前正在构建一个在线APP,允许用户从通常的javascript颜色选择器中选择文本颜色。我想将返回的值转换为CMYK,我知道没有一种简单的普通方法可以实现这一点,因为有ICC配置文件和所有这些。
我仍然希望以“大多数”用户从Photoshop中了解的方式实现相对有用的转换。我想使用的配置文件是RGB颜色空间的“AdobeRGB”和CMYK颜色空间的“Coated Fogra39”。
我想知道的是,如果有任何方法可以通过利用这两个ICC配置文件(我已下载)将单个颜色值从一个颜色空间转换为另一个颜色空间。有一些方法可以使用ImageMagick转换整个图像,但我很想找到一种方法来计算从一个颜色值到另一个颜色值。 如果有任何想法,我也倾向于使用其他方法来实现这一目标。
感谢。
答案 0 :(得分:0)
您可以使用Imagick::setImageColorSpace
这是tutorial
另外我必须警告你cmyk配置文件用于打印而不是用于筛选它们将是差异而你无法计算与rgb相同(rgb错过了黑色的东西)黑色的例子(每个人都知道这种颜色) RGB黑色:0,0,0, CMYK黑色:100%; 但是他们100%的键在某些打印机上的工作方式不同,你只需要100%的其他打印机就像我使用roland sp 540i的那个我根据我的需要制作不同类型的黑色产生不同类型的黑色因为100 %key不会产生每个人都知道的黑色,你甚至可以在photoshop / corel draw中测试它,看看你的屏幕有什么不同。
其他例子:
所以你看到CMYK与rgb空间有很大不同,因为它用于打印,这意味着如果你不知道它是如何工作的,你会遇到麻烦。
更新:ICC配置文件适用于不用于打印的显示器..
答案 1 :(得分:0)
您可以尝试创建一个包含一系列渐变的Photoshop图像,这些渐变模拟所有RGB颜色的子集,然后将其保存为CMYK(比如未压缩的TIFF,这样您就可以像查找表一样使用图像)。读取颜色值并根据这些颜色值创建一组方程式,可以从此图像中的查找中推断出目标CMYK,虽然这是很多努力,尝试过一次并放弃,有点复杂......或者,给用户一个减少组合并将它们存储在表中,就像所有#000 - #fff组合一样,如果你可以接受的话。
RGB - CMYK转换远非简单,这就是Adobe为此付出代价的原因......
答案 2 :(得分:0)
只需回答标题中的问题:
您可以通过 system()
调用使用命令行:
<?php
system('convert inputfile.png -profile sRGB.icc -profile CoatedFOGRA39.icc -units PixelsPerInch -density 600 outputfile.pdf');