Ho un'applicazione che ho sviluppato che sta generando immagini PNG RGB con testo su di esse tramite imageMagic, in questo modo:
convert -size 1000x1000 -density 300 xc:white -pointsize 24 \
-fill "rgb(0,0,0)" -annotate +500+500 'Josh Test' Jtest.png
Funziona alla grande. Tuttavia, devo essere in grado di generare anche output CMYK, le stesse immagini, ma in CMYK anziché RGB. InkScape non può farlo. Ho pensato di poter usare solo un colore CMYK:
convert -colorspace cmyk -density 300 xc:white -pointsize 24 \
-fill "cmyk(0,0,0,0)" -annotate +500+500 'Josh Test' Jtest.pdf
Tuttavia, l'immagine risultante non è al 100% nera, ma al 100% ciano, 100% magenta, 100% giallo e 0% nero. I colori reali sembrano anche peggio. Questo perché ImageMagic disegna tutto in uno spazio RGB e converte in CMYK:
Il disegno richiede il modello di colore RGBA. Internamente, le immagini vengono memorizzate come RGB(A) o CMY(A)K.
Non riesco a generare immagini RGB e convertirle in CMYK, i colori non saranno corretti. Devono essere CMYK per tutto il percorso. Come posso generare immagini CMYK sotto Linux?
Risposta accettata:
Salva uno script Python come questo:
#!/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])
Le dipendenze sono python e la libreria di imaging python. Quindi puoi creare le tue immagini con questo comando:
python cmyktext.py "Josh test" Jtest.pdf
Non dimenticare che cmyk è sottrattivo, quindi (0,0,0,0) è effettivamente bianco. Ovviamente è anche possibile utilizzare qualsiasi tipo di carattere che ti piace, come documentato qui.