Tengo una aplicación que he desarrollado que genera imágenes RGB PNG con texto en ellas a través de imageMagic, así:
convert -size 1000x1000 -density 300 xc:white -pointsize 24 \
-fill "rgb(0,0,0)" -annotate +500+500 'Josh Test' Jtest.png
Está funcionando muy bien. Sin embargo, también necesito poder generar una salida CMYK, las mismas imágenes, pero en CMYK en lugar de RGB. InkScape no puede hacer esto. Pensé que podría usar un color CMYK:
convert -colorspace cmyk -density 300 xc:white -pointsize 24 \
-fill "cmyk(0,0,0,0)" -annotate +500+500 'Josh Test' Jtest.pdf
Sin embargo, la imagen resultante no es 100 % negra, sino 100 % cian, 100 % magenta, 100 % amarilla y 0 % negra. Los colores reales se ven aún peor. Esto se debe a que ImageMagic hace todos los dibujos en un espacio RGB y convierte a CMYK:
El dibujo requiere el modelo de color RGBA. Internamente, las imágenes se almacenan como RGB(A) o CMY(A)K.
No puedo generar imágenes RGB y convertirlas a CMYK, los colores no serán los correctos. Deben ser CMYK en todo su recorrido. ¿Cómo puedo generar imágenes CMYK en Linux?
Respuesta aceptada:
Guarde una secuencia de comandos de Python como esta:
#!/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])
Las dependencias son python y la biblioteca de imágenes de python. Entonces puedes crear tus imágenes con este comando:
python cmyktext.py "Josh test" Jtest.pdf
No olvide que cmyk es sustractivo, por lo que (0,0,0,0) es en realidad blanco. Por supuesto, también es posible usar cualquier fuente que desee, como se documenta aquí.