Ich habe eine Anwendung, die ich entwickelt habe und die RGB-PNG-Bilder mit Text darauf über imageMagic generiert, etwa so:
convert -size 1000x1000 -density 300 xc:white -pointsize 24 \
-fill "rgb(0,0,0)" -annotate +500+500 'Josh Test' Jtest.png
Es funktioniert großartig. Ich muss jedoch in der Lage sein, auch eine CMYK-Ausgabe zu generieren, dieselben Bilder, jedoch in CMYK und nicht in RGB. InkScape kann das nicht. Ich dachte, ich könnte einfach eine CMYK-Farbe verwenden:
convert -colorspace cmyk -density 300 xc:white -pointsize 24 \
-fill "cmyk(0,0,0,0)" -annotate +500+500 'Josh Test' Jtest.pdf
Das resultierende Bild ist jedoch nicht 100 % Schwarz, sondern 100 % Cyan, 100 % Magenta, 100 % Gelb und 0 % Schwarz. Echte Farben sehen noch schlimmer aus. Dies liegt daran, dass ImageMagic alle Zeichnungen in einem RGB-Raum durchführt und in CMYK konvertiert:
Zum Zeichnen ist das RGBA-Farbmodell erforderlich. Intern werden Bilder als RGB(A) oder CMY(A)K gespeichert.
Ich kann keine RGB-Bilder erzeugen und in CMYK konvertieren, die Farben werden nicht stimmen. Sie müssen durchgehend CMYK sein. Wie kann ich CMYK-Bilder unter Linux generieren?
Akzeptierte Antwort:
Speichern Sie ein Python-Skript wie dieses:
#!/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])
Abhängigkeiten sind Python und die Python-Imaging-Bibliothek. Dann können Sie Ihre Bilder mit diesem Befehl erstellen:
python cmyktext.py "Josh test" Jtest.pdf
Vergessen Sie nicht, dass cmyk subtraktiv ist, also ist (0,0,0,0) eigentlich weiß. Natürlich ist es auch möglich, beliebige Schriftarten zu verwenden, wie hier dokumentiert.