Mettre un logo ou signature sur vos images en ligne de commande

ImageMagick, déc. 2023
logo ImageMagick

Je vous propose aussi un script Bash pour le faire par lot

Je compte enrichir mon Pixelfed avec certaines de mes photos et je me disais que mettre un petit logo sur chacune de mes images serait bien, puisque celles actuelles ne sont pas signées.

Pour cela il faudra installer ImageMagick pour l’accès à ses composants car nous devrons utiliser la commande « composite ».

J’avoue avoir un peu galéré car il manque quelques informations sur le « man composite », rassurez-vous, je vous vous mets tout !

Précision :

Si vos images sont en « .jpg » faites votre logo à un format différent pour plus de commodité du genre « .png ».  Ce n’est pas obligatoire si vous ne mettez pas le logo dans le même répertoire et que vous précisez son chemin.

Ajouter un logo à vos images en ligne de commande

Le basique

composite -geometry +15+15 votrelogo.png image-original.jpg image-finale.jpg
  • composite est la commande pour superposer des images.
  • -geometry +15+15 spécifie la position de votre logo par rapport au coin supérieur gauche.
  • +15+15 pixels vous pouvez préciser plus ou moins.

Oui mais moi Sima je veux que ce soit en bas à gauche !
Pas de souci…

composite -gravity southwest -geometry +15+15 votrelogo.png image-original.jpg image-finale.jpg
  • -gravity southwest spécifie la position dans le coin inférieur gauche de l’image.
  • -gravity southeast en bas à droite
  • -gravity center -geometry +0+0 au centre
photo avec logo Sima78, déc. 2023
photo avec logo Sima78

Sima, c’est bien beau tout ça, mais je ne veux pas me faire chier m’embêter à faire image par image, j’en ai des centaines…
Ok, passons au petit script sans prétention.

Script pour ajouter un logo par lot.

#!/bin/bash

logo="votrelogo.png"

for image in *.jpg; do

    output="output_${image}"

    composite -gravity southwest -geometry +15+15 "${logo}" "${image}" "${output}"

done

Si vos images ont toutes une extension .JPG donc en majuscule il faudra modifier le script car là il ne prend que l’extension en minuscule. Vous pouvez modifier pour qu’il accepte les deux, Bref, il s’agit d’une base qui ne demande qu’à être améliorée.

  • logo est le nom du fichier de votrelogo.
  • Assurez-vous que le fichier du logo est dans le même répertoire que vos images ou spécifiez le chemin complet.
  • La boucle for image in *.jpg parcourt tous les fichiers avec l’extension .jpg dans le répertoire courant. Vous pouvez ajuster l’extension selon le format de vos images.
  • output= »output_${image} » définit le nom du fichier de sortie en ajoutant le préfixe « output_ » au nom de chaque image d’entrée. Vous pouvez personnaliser le préfixe.
  • composite est utilisée à l’intérieur de la boucle pour ajouter le logo.

Enregistrez ce script sous le nom de votre choix du genre ajout-logo.sh

Rendez-le exécutable avec la commande

chmod +x ajout-logo.sh

Puis exécutez-le dans le répertoire contenant vos images.

Vous pouvez en papprendre un peu plus sur l’article Initiation au shell boucle (for, do, done)

Il y a aussi une possibilité avec la commande « find » mais attention dans ce cas c’est récursif et cela modifiera tous vos fichiers .jpg se trouvant dans les sous-répertoires, mais ça peut être utile.

Avec l’option « -iname » peut importe que l’extension .jpg soit en majuscule ou pas.

find /chemin/vers/le_dossier/de_vos_images -type f -iname "*.jpg" -exec composite -gravity southeast -geometry +15+15 /chemin/vers/votrelogo.png {} {} \;

Qu’en pensez-vous ? Vous avez d’autres astuces en ligne de commande, je suis preneur !

Le billet Mettre un logo ou signature sur vos images en ligne de commande est apparu en premier sur le blog de Sima78.

3 réflexions sur « Mettre un logo ou signature sur vos images en ligne de commande »

  1. Nice! je ne connaissais pas composite, merci pour le tuto.

    Je ne sais pas si ton but est de rendre uniquement visuel l’appartenance de tes photos ou si c’est aussi pour faire une sorte de copyright .
    Mais sinon tu peux l’inscrire dans les metadatas de la photo en bash avec:

    exiftool « -copyright<(c) Sima78. » « .maPhoto.jpg » -overwrite original

    sinon sympa le Panasonic modèle DMC-TZ57 😛

  2. @benzo : oui, ici c’est vraiment pour le côté visuel.
    Merci pour ta commande dont je suis toujoujours friand, j’avais d’ailleurs écrit un tuto sur les métadonnées exif :
    https://sima78.chispa.fr/index.php?…

    Comme tu l’as vu, je n’ai pas effacé les métadonnées exif de la photo 🙂

Répondre à benzo Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *