Mám aplikaci, kterou jsem vyvinul a která generuje obrázky RGB PNG s textem přes imageMagic, například takto:
convert -size 1000x1000 -density 300 xc:white -pointsize 24 \
-fill "rgb(0,0,0)" -annotate +500+500 'Josh Test' Jtest.png
funguje to skvěle. Potřebuji však být schopen generovat také výstup CMYK, stejné obrázky, ale spíše ve CMYK než v RGB. InkScape to neumí. Myslel jsem, že bych mohl použít barvu CMYK:
convert -colorspace cmyk -density 300 xc:white -pointsize 24 \
-fill "cmyk(0,0,0,0)" -annotate +500+500 'Josh Test' Jtest.pdf
Výsledný obrázek však není 100% černý, ale 100% azurový, 100% purpurový, 100% žlutý a 0% černý. Skutečné barvy vypadají ještě hůř. Je to proto, že ImageMagic provádí veškeré kreslení v prostoru RGB a převádí se do CMYK:
Kreslení vyžaduje barevný model RGBA. Interně jsou obrázky uloženy jako RGB(A) nebo CMY(A)K.
Nemohu generovat obrázky RGB a převádět do CMYK, barvy nebudou správné. Celou cestu musí být CMYK. Jak mohu generovat obrázky CMYK pod linuxem?
Přijatá odpověď:
Uložte skript pythonu takto:
#!/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])
Závislosti jsou python a knihovna zobrazení pythonu. Poté můžete vytvořit obrázky pomocí tohoto příkazu:
python cmyktext.py "Josh test" Jtest.pdf
Nezapomeňte, že cmyk je subtraktivní, takže (0,0,0,0) je ve skutečnosti bílá. Je samozřejmě také možné použít libovolný font, jak je zdokumentováno zde.