首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageMagick (ImageMagick) RGB > CMYK与平黑色

ImageMagick (ImageMagick) RGB > CMYK与平黑色
EN

Stack Overflow用户
提问于 2014-11-06 09:07:57
回答 1查看 1.2K关注 0票数 0

我使用PHP将在PhantomJS中生成的PNG图像转换为TIF,为了打印目的,我需要一个平面黑( CMYK - 0,0,0,100) --这种转换会生成类似于(CMYK-58,49,44,89)这样的黑色。

我正在使用颜色配置文件(下面代码的一部分) ->转换图像,代码是基于Convert image from RGB to CMYK with Imagick

有可能用Imagick来强迫一个扁平的黑色吗?你知道其他可能有用的工具吗?

谢谢,

代码语言:javascript
复制
if ($has_icc_profile === false) {
    $icc_rgb = file_get_contents( '/srgb_profiles' . '/sRGB.icc');
    $image->profileImage('icc', $icc_rgb);
    unset($icc_rgb);
}
// then we add an CMYK profile
$icc_cmyk = file_get_contents( '/cmyk_profiles'.'/JapanColor2002Newspaper.icc');
$image->profileImage('icc', $icc_cmyk);

最新情况:

在在线查看之后,我想我正在寻找一种用于ImageMagick的UCR en.wikipara.org/wiki/ under _ removal方法--我发现转换了移色支持的旧版本。

代码语言:javascript
复制
-undercolor <undercolor factor>x<black-generation factor>
control undercolor removal and black generation on CMYK images.
This option enables you to perform undercolor removal and black generation on CMYK images--      images   to be printed on a four-color printing system. You can con- trol how much cyan, magenta, and yellow to remove from your image and how much black to add to it. The standard undercolor removal is 1.0x1.0. You'll frequently get better results, though, if the percentage of black you add to your image is slightly higher than the percentage of C, M, and Y you remove from it. For example you might try 0.5x0.7. (http://www.chemie.fu-berlin.de/chemnet/use/suppl/imagemagick/www/convert.html) - 

显然,这个选项不再受支持,我感兴趣的是,是否有人知道UCR是否是我正在寻找的解决方案,以及是否有人知道它是否被支持,或者我是否应该使用不同的方法来获得相同的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-06 11:12:06

如果您在命令行中使用ImageMagick的convert生成一个灰度坡道,1像素宽,256像素高,从白色到黑色,然后将其转换为CMYK颜色空间,然后显示为文本,您将得到您想要的:

代码语言:javascript
复制
convert -size 1x256 'gradient:rgb(255,255,255)-rgb(0,0,0)' -colorspace cmyk txt:
# ImageMagick pixel enumeration: 1,256,65535,cmyk
0,0: (0%,0%,0%,0%)  #0000000000000000  cmyk(0,0,0,0)
0,1: (0%,0%,0%,0.392157%)  #0000000000000101  cmyk(0,0,0,1)
0,2: (0%,0%,0%,0.784314%)  #0000000000000202  cmyk(0,0,0,2)
0,3: (0%,0%,0%,1.17647%)  #0000000000000303  cmyk(0,0,0,3)
0,4: (0%,0%,0%,1.56863%)  #0000000000000404  cmyk(0,0,0,4)
0,5: (0%,0%,0%,1.96078%)  #0000000000000505  cmyk(0,0,0,5)
0,6: (0%,0%,0%,2.35294%)  #0000000000000606  cmyk(0,0,0,6)
0,7: (0%,0%,0%,2.7451%)  #0000000000000707  cmyk(0,0,0,7)
0,8: (0%,0%,0%,3.13725%)  #0000000000000808  cmyk(0,0,0,8)
0,9: (0%,0%,0%,3.52941%)  #0000000000000909  cmyk(0,0,0,9)
0,10: (0%,0%,0%,3.92157%)  #0000000000000A0A  cmyk(0,0,0,10)
...
...
0,249: (0%,0%,0%,97.6471%)  #000000000000F9F9  cmyk(0,0,0,249)
0,250: (0%,0%,0%,98.0392%)  #000000000000FAFA  cmyk(0,0,0,250)
0,251: (0%,0%,0%,98.4314%)  #000000000000FBFB  cmyk(0,0,0,251)
0,252: (0%,0%,0%,98.8235%)  #000000000000FCFC  cmyk(0,0,0,252)
0,253: (0%,0%,0%,99.2157%)  #000000000000FDFD  cmyk(0,0,0,253)
0,254: (0%,0%,0%,99.6078%)  #000000000000FEFE  cmyk(0,0,0,254)
0,255: (0%,0%,0%,100%)  #000000000000FFFF  cmyk(0,0,0,255)

你一定是在做一些不同的事情--也许这会帮你解决问题。我猜这是您的ICC配置文件,但是您可以使用上面的命令进行实验。

如果您只想实验spot值,可以让IM转换一个像素,如下所示:

代码语言:javascript
复制
convert -size 1x1 xc:#000000 -colorspace cmyk txt:
# ImageMagick pixel enumeration: 1,1,65535,cmyk
0,0: (0%,0%,0%,100%)  #000000000000FFFF  cmyk(0,0,0,255)

或者更简单的像这样:

代码语言:javascript
复制
convert -size 1x1 xc:#000000 -depth 8 -colorspace cmyk txt:
# ImageMagick pixel enumeration: 1,1,255,cmyk
0,0: (0,0,0,255)  #000000FF  cmyk(0,0,0,255)

注意到以下

  1. 必须将概要文件放在命令行的输入图像和输出图像名称之间。
  2. 如果您的图像没有嵌入配置文件,则您给出的第一个配置文件将应用于输入图像,第二个配置文件应用于输出图像。如果输入图像确实有配置文件,那么您给出的第一个配置文件将应用于输出映像。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26775476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档