Il y a quelques temps, j’ai écrit un article décrivant comment générer la couverture d’un ebook automatiquement (Comment générer la couverture d’un livre électronique).
Un cas particulier de couverture intéressant est la couverture d’un scénario de film.
Par exemple, l’usage pour les productions américaines, est que la couverture suive cette convention:
- utilisation d’une police courrier
- contient au minimum le titre et le nom de l’auteur
- 3 perforations
- 2 “attaches parisiennes” (brass fastener), la perforation du milieu restant libre
Ce type de présentation peut donner lieu à la génération automatique en utilisant le couteau suisse de la génération d’image: ImageMagick
Pour commencer, 3 images sont nécessaires:
- l’image de fond: une feuille de papier
- l’image de la tête d’une attache parisienne
- l’image pour la perforation libre
Il faut également un font truetype (.ttf) en faisant attention que tous les caractères soient présents (pour le français en tout cas). La fonte Adler fera l’affaire ici.
Ensuite commence le jeu d’assemblage avec ImageMagick.
En partant de l’image originale (blank.png , feuille de papier), on vient ajouter les perforations sur la page en générant à chaque fois un nouveau fichier image:
composite -geometry 30x30+20+50 BB.png blank.png -compose over res01.png composite -geometry 30x30+20+720 BB.png res01.png -compose over res02.png composite -geometry 50x50+15+360 hole.png res02.png -compose over res03.png
Ensuite, il faut générer le texte. La magie de ImageMagick est que celui-ci se charge d’aligner le texte dans le rectangle d’affichage.
Chaque texte est généré dans sa propre image qui est ensuite insérée dans l’image résultat:
convert -background none -fill black -font "adler.ttf" -pointsize 30 -size 550x100 -gravity Center caption:"$TITLE" res04.png composite -geometry +40+80 res04.png res03.png -compose over res05.png convert -background none -fill black -font "adler.ttf" -pointsize 20 -size 550x60 -gravity Center caption:"$BY" res06.png composite -geometry +40+180 res06.png res05.png -compose over res07.png convert -background none -fill black -font "adler.ttf" -pointsize 20 -size 550x80 -gravity Center caption:"$AUTHOR" res08.png composite -geometry +40+260 res08.png res07.png -compose over res09.png
Et voilà! le résultat est disponible dans le dernier fichier intermédiaire res09.png.






