Jean Michel Missègue-Delmas wrote: > J'ai 240 photos sur lesquelles je dois ajouter un texte identique pour > chaque photo, existe t-il une méthode pour pouvoir faire cette opération > en lot svp? J'ai pas envie d'écrire 240 fois la même chose ;)
Ca se fait très bien avec ImageMagick (paquet imagemagick), qui fournit plusieurs outils de traitement d'image en ligne de commande, dont "convert". Voici quelques exemples: Ajouter un bandeau de texte bleu sur fond blanc au dessous d'image.jpg: convert image.jpg -background white -font Helvetica -fill blue -pointsize 72 label:"phrase de test" -gravity Center -append image_avec_texte.jpg Ajouter un bandeau de texte bleu sur fond blanc au dessus d'image.jpg: convert image.jpg -background white -font Helvetica -fill blue -pointsize 72 label:"phrase de test" +swap -gravity Center -append image_avec_texte.jpg Ajouter du texte blanc surligner en noir sur image.txt: convert image.jpg -font Helvetica -pointsize 48 -gravity south -stroke '#000C' -strokewidth 2 -annotate 0 "phrase de test" -stroke none -fill white -annotate 0 "phrase de test" image_avec_texte.jpg -pointsize permet de gérer la taille de l'image -gravity permet de gérer l'emplacement du texte sur l'image (south, north, east, west ....) -font permet de sélectionner la police utilisée ... utiliser la commande "identify -list font" pour connaître la liste des polices accessibles par convert Maintenant pour appliquer ceci à 240 images, il suffit de faire un peu de bash: Dans l'exemple suivant les images se trouvent dans le dossier $HOME/Images/projet1 et sont nommées imageXXX.jpg (XXX allant de 001 à 240), le dossier en contenant pas d'autres images. la commande utilisée est la 3e présentée (écriture sur l'image). On peut utiliser 2 méthodes (même plus mais je n'en parlerais que de 2): 1- avec une boucle "for" : cd $HOME/Images/projet1 for image_name in $(ls *.jpg); do convert $image_name -font Helvetica -pointsize 48 -gravity south -stroke '#000C' -strokewidth 2 -annotate 0 "phrase de test" -stroke none -fill white -annotate 0 "phrase de test" $(basename $image_name)_avec_texte.jpg ; done 2- avec la commande find (celle-ci ne posera pas problème si il y a des espaces dans le nom des images ... mais bien sûr personne ne met d'espaces dans ses noms de fichiers ...) : find $HOME/Images/projet1 -maxdepth 1 -iname "*.jpg" -exec convert {} -font Helvetica -pointsize 48 -gravity south -stroke '#000C' -strokewidth 2 -annotate 0 "phrase de test" -stroke none -fill white -annotate 0 "phrase de test" $(basename {})_avec_texte.jpg \; dans les 2 cas le dossier $HOME/Images/projet1 se retrouve peuplé d'images annotées dont le nom est imageXXX_avec_texte.jpg Bonne continuation Ju -- Celui qui prétend que l'on peut croître indéfiniment dans un espace limité est soit un fou, soit un économiste ! -- ubuntu-fr mailing list ubuntu-fr@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-fr