GNU/Linux >> Tutoriels Linux >  >> Linux

Comment générer des images CMJN via la ligne de commande sous Linux ?

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.


Linux
  1. Comment extraire le fichier tar.gz sous Linux à l'aide de la ligne de commande

  2. Comment supprimer un utilisateur sous Linux à l'aide de la ligne de commande

  3. Comment identifier la saveur particulière de Linux via la ligne de commande ?

  4. Comment puis-je copier un dossier à partir de la ligne de commande Linux ?

  5. comment générer une adresse MAC aléatoire à partir de la ligne de commande Linux

Comment vérifier l'orthographe sur la ligne de commande Linux avec Aspell

Comment utiliser la commande Linux history

Comment utiliser Nano, l'éditeur de texte en ligne de commande Linux

Maîtrisez la ligne de commande Linux

Télécharger des fichiers via la ligne de commande sous Linux

Comment :Général Linux - IPTables de base via la ligne de commande