使用PHP中的ICC配置文件将RGB转换为CMYK

时间:2014-05-18 18:42:53

标签: php linux rgb cmyk color-profile

我目前正在构建一个在线APP,允许用户从通常的javascript颜色选择器中选择文本颜色。我想将返回的值转换为CMYK,我知道没有一种简单的普通方法可以实现这一点,因为有ICC配置文件和所有这些。

我仍然希望以“大多数”用户从Photoshop中了解的方式实现相对有用的转换。我想使用的配置文件是RGB颜色空间的“AdobeRGB”和CMYK颜色空间的“Coated Fogra39”。

我想知道的是,如果有任何方法可以通过利用这两个ICC配置文件(我已下载)将单个颜色值从一个颜色空间转换为另一个颜色空间。有一些方法可以使用ImageMagick转换整个图像,但我很想找到一种方法来计算从一个颜色值到另一个颜色值。 如果有任何想法,我也倾向于使用其他方法来实现这一目标。

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用Imagick::setImageColorSpace

这是tutorial

另外我必须警告你cmyk配置文件用于打印而不是用于筛选它们将是差异而你无法计算与rgb相同(rgb错过了黑色的东西)黑色的例子(每个人都知道这种颜色) RGB黑色:0,0,0, CMYK黑色:100%; 但是他们100%的键在某些打印机上的工作方式不同,你只需要100%的其他打印机就像我使用roland sp 540i的那个我根据我的需要制作不同类型的黑色产生不同类型的黑色因为100 %key不会产生每个人都知道的黑色,你甚至可以在photoshop / corel draw中测试它,看看你的屏幕有什么不同。

其他例子:

  • 注册黑色| C100 M100 Y100 K100
  • 中性富黑(也称为富黑)| C40 M30 Y30 K100
  • 扁黑| C0 M0 Y0 K100 - 此黑色仅由100%的黑色通道组成,混合中没有其他墨水。也称为标准黑色。
  • Designer Black | C70 M50 Y30K100Pantone®工艺黑| Spot-Color /'K100':这个 黑色可​​用作Pantone®ProcessBlack C(涂层),U, (无涂层)和M(马特)。
  • 酷黑(也称为黑色凹凸)| C50 M0 Y0 K100:这是一般混合物,但这种黑色也可以[通常]包含在20%-80%青色之间。
  • 金色黑色| C0 M0 Y60 K100:这是一般混合物,但这种黑色也可以 包含[通常] 20%-80%黄色。
  • 暖黑| C0 M60 Y0 K100:这是一般混合物,但这种黑色也可以 包含[通常] 20%-80%品红色。

所以你看到CMYK与rgb空间有很大不同,因为它用于打印,这意味着如果你不知道它是如何工作的,你会遇到麻烦。

更新:ICC配置文件适用于不用于打印的显示器..

答案 1 :(得分:0)

您可以尝试创建一个包含一系列渐变的Photoshop图像,这些渐变模拟所有RGB颜色的子集,然后将其保存为CMYK(比如未压缩的TIFF,这样您就可以像查找表一样使用图像)。读取颜色值并根据这些颜色值创建一组方程式,可以从此图像中的查找中推断出目标CMYK,虽然这是很多努力,尝试过一次并放弃,有点复杂......或者,给用户一个减少组合并将它们存储在表中,就像所有#000 - #fff组合一样,如果你可以接受的话。

RGB - CMYK转换远非简单,这就是Adobe为此付出代价的原因......

答案 2 :(得分:0)

只需回答标题中的问题:

在 PHP 中使用 ICC 配置文件将 RBG 转换为 CMYK

您可以通过 system() 调用使用命令行:

<?php
system('convert inputfile.png -profile sRGB.icc -profile CoatedFOGRA39.icc -units PixelsPerInch -density 600 outputfile.pdf');