Linux下如何通过命令行生成CMYK图像?

Linux下如何通过命令行生成CMYK图像?

我开发了一个应用程序,它通过 imageMagic 生成带有文本的 RGB PNG 图像,如下所示:

convert -size 1000x1000 -density 300 xc:white -pointsize 24 \
  -fill "rgb(0,0,0)" -annotate +500+500 'Josh Test' Jtest.png

效果很好。然而,我也需要能够生成 CMYK 输出,相同的图像,但采用 CMYK 而不是 RGB。 InkScape 无法做到这一点。我想我可以只使用 CMYK 颜色:

convert -colorspace cmyk -density 300 xc:white -pointsize 24 \
  -fill "cmyk(0,0,0,0)" -annotate +500+500 'Josh Test' Jtest.pdf

然而,生成的图像不是 100% 黑色,而是 100% 青色、100% 品红色、100% 黄色和 0% 黑色。实际颜色看起来更糟。这是因为ImageMagic 在 RGB 空间中进行所有绘图并转换为 CMYK:

绘图需要RGBA颜色模型。在内部,图像存储为 RGB(A) 或 CMY(A)K。

我无法生成 RGB 图像并转换为 CMYK,颜色不正确。它们必须自始至终都是 CMYK。 linux下如何生成CMYK图像?

答案1

保存一个 python 脚本,如下所示:

#!/usr/bin/python
from PIL import Image, ImageFont, ImageDraw
import sys

im = Image.new('CMYK', (1000,1000), (0, 0, 0, 255))

f = ImageFont.load_default()
d = ImageDraw.Draw(im)
d.text((500, 500), sys.argv[1], font = f, fill = (0, 0, 0, 0))
del d

im.save(sys.argv[2])

依赖项是 python 和 python 成像库。然后您可以使用以下命令创建图像:

python cmyktext.py "Josh test" Jtest.pdf

不要忘记 cmyk 是减法,所以 (0,0,0,0) 实际上是白色。当然也可以使用您喜欢的任何字体,如文档所示这里

相关内容