J'ai une application que j'ai développée qui génère des images PNG RVB avec du texte dessus via imageMagic, comme ceci :
convert -size 1000x1000 -density 300 xc:white -pointsize 24 \
-fill "rgb(0,0,0)" -annotate +500+500 'Josh Test' Jtest.png
Cela fonctionne très bien. Cependant, je dois également pouvoir générer une sortie CMJN, les mêmes images, mais en CMJN plutôt qu'en RVB. InkScape ne peut pas faire cela. J'ai pensé que je pouvais simplement utiliser une couleur CMJN :
convert -colorspace cmyk -density 300 xc:white -pointsize 24 \
-fill "cmyk(0,0,0,0)" -annotate +500+500 'Josh Test' Jtest.pdf
Cependant l'image résultante n'est pas 100% noire, mais 100% cyan, 100% magenta, 100% jaune et 0% noire. Les couleurs réelles sont encore pires. C'est parce qu'ImageMagic fait tout le dessin dans un espace RVB et convertit en CMJN :
Le dessin nécessite le modèle de couleurs RGBA. En interne, les images sont stockées au format RVB(A) ou CMJ(A)K.
Je ne peux pas générer d'images RVB et convertir en CMJN, les couleurs ne seront pas correctes. Ils doivent être CMJN tout au long. Comment puis-je générer des images CMJN sous Linux ?
Réponse acceptée :
Enregistrez un script Python comme celui-ci :
#!/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])
Les dépendances sont python et la bibliothèque d'imagerie python. Ensuite, vous pouvez créer vos images avec cette commande :
python cmyktext.py "Josh test" Jtest.pdf
N'oubliez pas que cmyk est soustractif, donc (0,0,0,0) est en fait blanc. Il est bien sûr également possible d'utiliser la police de votre choix, comme documenté ici.