Como posso gerar imagens CMYK através da linha de comando no Linux?

4

Eu tenho desenvolvido um aplicativo que está gerando imagens RGB PNG com texto nelas via imageMagic, assim:

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

Está funcionando muito bem. No entanto, eu preciso ser capaz de gerar saída CMYK, bem como as mesmas imagens, mas em CMYK, em vez de RGB. O InkScape não pode fazer isso. Eu pensei que poderia usar apenas uma cor CMYK:

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

No entanto, a imagem resultante não é 100% preta, mas 100% ciano, 100% magenta, 100% amarelo e 0% preto. As cores reais parecem ainda piores. Isso ocorre porque ImageMagic faz todo o desenho em um espaço RGB e converte em CMYK :

Drawing requires the RGBA color model. Internally, images are stored as RGB(A) or CMY(A)K.

Não consigo gerar imagens RGB e converter em CMYK, as cores não estarão corretas. Eles devem ser CMYK por todo o caminho. Como posso gerar imagens CMYK no linux?

    
por Josh 06.10.2011 / 21:52

1 resposta

2

Salve um script python assim:

#!/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])

Dependências são python e a biblioteca de imagens python. Então você pode criar suas imagens com este comando:

python cmyktext.py "Josh test" Jtest.pdf

Não se esqueça que o cmyk é subtrativo, então (0,0,0,0) é na verdade branco. É claro que também é possível usar qualquer fonte que você goste, como documentado aqui .

    
por 08.11.2011 / 19:06