Encoder des métadonnées dans les photos

Comment, sous linux, introduire le nom de l’auteur, le droit d’auteur et les coordonnées géographiques.

Auteur et droits

Voici le script que j’utilise pour encoder l’auteur, encoder le copyright en«droit d’auteur» et renommer les fichiers.

Remarque sur zenity
Zenity avec –question ne renvoie rien, la réponse est contenue dans le code de retour de la commande , si c’est oui alors le code de retour sera 0 , et 1 si c’est non. Pour recupérer le code de retour de la dernière commande exécutée , on utilise $?

#!/bin/bash
###  VARIABLES
Nom_ini="CHi"
XF_Art="Christian Hinque (LeChi)"
XF_cr="Droits d'auteur"
XF_cmd1="set Exif.Image.Artist Ascii  $XF_Art "
XF_cmd2="set Exif.Image.Copyright Ascii $XF_cr"
###  LOCALISATION
#REP_photos=$PWD #Cette commande suffit si on place le fichier script dans le répertoire contenant les photos à traiter.
REP_photos=`zenity --title="Choisir un fichier" --file-selection --directory`
if [ $? = "1" ]
then exit
fi
### VERIFICATION DES VARIABLES
zenity --list  --width=700 --height=250 \
  --title="Vérifiez !." \
  --column="Données" --column="Valeur" \
    "Photos traitées si extensions :" "jpg jpeg JPG JPEG" \
    "Photos traitées dans le répertoire"  "$REP_photos" \
    "la métadonnée exif Auteur sera " "$XF_Art" \
    "la métadonnée exif Copyright sera " "$XF_cr"\
--question --text="Vérifiez les variables et dites si vous voulez vraiment continuer !"
if [ $? = "1" ]
then exit
fi
### SCRIPT
cd "$REP_photos"
#Renommer les photos
rename .JPG .jpg *.JPG
for FN in *.jpeg
  do
    mv ${FN} ${FN%jpeg}jpg
  done
  find . -iname "*.jpg" -exec exiv2 -r %Y%m%d-%Hh%Mm%S-$Nom_ini mv {} \; 
# Les données de droit d'auteur
exiv2 -M"$XF_cmd1" -M"$XF_cmd2" *.jpg
# Fin de script
zenity --info --title "Au revoir - LeChi" --text "Les photos sont traitées"
exit

Et voici le script pour changer le droit d’auteur en <art libre».

#!/bin/bash
###  VARIABLES
XF_cr="CopyLeft - ArtLibre"
XF_cmd2="set Exif.Image.Copyright Ascii $XF_cr"
####  LOCALISATION
#REP_photos=$PWD #Cette commande suffit si on place le fichier script dans le répertoire contenant les photos à traiter.
REP_photos=`zenity --title="Choisir un fichier" --file-selection --directory`
if [ $? = "1" ]
then exit
#else 
fi
### VERIFICATION DES VARIABLES 
zenity --list  --width=700 --height=250 \
  --title="Vérifiez !." \
  --column="Données" --column="Valeur" \
    "Photos traitées si extensions :" "jpg" \
    "Photos traitées dans le répertoire"  "$REP_photos" \
    "la métadonnée exif Copyright sera " "$XF_cr"\
--question --text="Vérifiez les variables et dites si vous voulez vraiment continuer!"
if [ $? = "1" ]
then exit
fi
###  SCRIPT
cd "$REP_photos"
exiv2 -M"$XF_cmd2" *.jpg
# Fin de script
zenity --info --title "Au revoir - LeChi" --text "Les photos sont traitées"
exit


Les coordonnées géographiques

J’utilise le programme GPS Photo Correlate. C’est un progamme en ligne de commandes mais gui s’installe également (/usr/bin/gpscorrelate-gui). Il suffit de l’appeler via un fichier sh.

Le plus simple, pendant le voyage, est d’enregistrer ses déplacements avec son gsm. Osmand permet cet enregistrement. Il suffira alors de récupérer les fichiers gpx.

Sinon, on peut créer manuellement un tel fichier. La précision ne peut pas être exigée, mais si on vise un quartier ou une ville, cela reste possible.

Le fichier ods est là pour créer un fichier gpx. Il faut copier la cellule bleue (M1) dans un fichier texte, d’encodage UTF-8 et dont les sauts de lignes sont CR/LF (windows).

Laisser un commentaire

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