Mettre un filigrane sur des documents officiels – ligne de commande

Mettre un filigrane [ImageMagick] et supprimer les métadonnées [ExifTool] sur des documents officiels que nous devons envoyer via le web ou par mail.

Le tout en ligne de commande depuis un terminal.

Un billet comme un conseil dans ce monde soi-disant idéal de la dématérialisation.

Dans beaucoup de procédures télématiques, il nous est demandé des copies de nos documents personnels, tel que notre pièce d’identité (on va prendre cet exemple dans ce billet).

L’idée de ce billet me vient d’une discussion téléphonique avec une administration qui me demandait d’envoyer une photocopie ou scan de ma carte d’identité.

Curieux, je demande : D’accord, qu’allez-vous faire de cette pièce, c’est très personnel, où sera t-elle stockée, pour combien de temps ? Quelle garantis donnez-vous ?
Réponse : Ne vous inquiétez pas, nous avons des services très spécialisés et toutes les données sont cryptées !
Ha, le mot est lâché, rassurant, « cryptées »…
Moi : Vous me demandez d’envoyer par mail, ça arrive sur une boite mail où je suppose que plusieurs personnels du service y ont accès, comment est géré la boite mail, qui y a accès, est-elle sécurisée ?…
Réponse : Faites-le directement depuis notre site web, il y a le petit cadenas en haut à gauche, tous est crypté…
Ouh là là, « crypté » le mot qui se voudrait rassurant et qui pourtant me fait pousser les poils des oreilles.
Moi : soit, la communication de bout en bout est chiffrée, mais une fois ma pièce envoyée, la carte d’identité, que devient-elle ?
Réponse : Nous avons des spécialistes de la sécurité et tout est crypté…
Moi : bon je résume, je vous envoie un document en clair, transparent via votre site, il se retrouve quelque part sur l’un de vos disques durs, sans que je sache qui y a accès ni ce que deviendra ce document…
Il me coupe la parole… : Je vous l’ai dit, tout est sécurisé et crypté…
Moi : Je peux imaginer que l’accès aux disques ou support soient sécurisés, que les disques dur soient chiffrés, ou comme vous dites, cryptés, mon document lui est en clair et les disques, une fois montés et même chiffrés, les données restent en clair…

Bon je vous fais grâce de la suite de la discussion de sourd.

Dans un monde idéal…

Une fois votre document scanné, l’idéal est de réaliser un chiffrement asymétrique, soit avec votre certificat numérique, soit avec d’une autre façon comme par exemple en utilisant « gpg » (j’aime bien gnupg, je l’utilise pour mes signatures et chiffrement de mes mails et autres…) afin que personne ne puisse lire le document envoyé, sauf celui qui doit le réceptionner.

Mais que ce soit dans l’administration ou ailleurs, il est très rare que l’on se préoccupe réellement de la sécurité de ce que l’on envoie.

Ajouter un filigrane.

Dans le cas où le destinataire ne sait pas comment fonctionne le chiffrement et c’est malheureusement souvent le cas, nous pouvons choisir l’option d’ajouter un filigrane à nos documents privés. D’autant plus que nous ne saurons pas où sera notre document ni pour combien de temps…

Nous allons ajouter en ligne de commande un filigrane sur notre document avec ImageMagick.

Vérifions s’il est déjà, ou pas, installé sur notre pc.

dpkg --get-selections | grep imagemagick
imagemagick             install
imagemagick-6-common    install
imagemagick-6.q16       install 

Si vous avez quelque chose de similaire à ci-dessus, c’est qu’il est installé, sinon il n’afficherait rien.
S’il n’est pas installé, il suffit de :

sudo apt install imagemagick

Une fois installé, nous pouvons utiliser tous les outils « ImageMagick ». Dans cet exemple, nous partirons d’une image test que j’ai trouvé sur le net et qui porte le nom « CNI-blog.jpg », vous l’aurez remarqué, je suis un peu plus vieux que sur la photo :

Afin d’ajouter un filigrane à l’image, nous allons exécuter la commande « convert » avec les options suivantes dans le même répertoire où se trouve notre image:

convert -density 150 -fill "rgba(255,0,0,0.25)" -gravity Center -pointsize 60 -draw "rotate -45 text 0,0 'COPIE'" CNI-blog.jpg CNI-blog-final.jpg

Description des options utilisées:

  • density: La résolution de la largeur de l’image avec l’unité de points par pouce (PPI).
  • fill: Couleur à utiliser.
  • gravity Center: position du texte, dans ce cas centrée sur l’image.
  • pointsize: taille en points de la police.
  • draw: annoter l’image avec une précision. Dans ce cas, avec un texte pivoté de 45 degrés dans le sens antihoraire dans les coordonnées X, Y 0,0 et le texte entre guillemets simples.
  • Ensuite, le fichier source où les modifications seront appliquées (CNI-blog.jpg) et le fichier de destination qui sera créé (CNI-blog-final.jpg).

Le résultat :

Pour compliquer les choses il conviendrait de personnaliser notre filigrane en fonction de chaque procédure:

convert -density 150 -fill "rgba(255,0,0,0.50)" -pointsize 15 -draw "rotate -15 text 0,200 'COPIE POUR TRAITEMENT'" -draw "rotate -15 text -25,260 'DE RECENSEMENT'" CNI-blog.jpg CNI-blog-final-02.jpg

Résultat suivant :

Supprimer les métadonnées

Pour terminer, nous pouvons supprimer les métadonnées effaçables du fichier (en fait il faudrait commencer par là) avec le programme « exiftool« , ce programme peut être installé à partir des dépôts :

sudo apt install exiftool

Puis :

exiftool CNI-blog-final-02.jpg

Et pour supprimer les métadonnées de notre fichier image avec le filigrane créé, nous allons exécuter :

exiftool -all= CNI-blog-final-02.jpg
    1 image files updated

Pour voir que les métadonnées ont bien disparu comme le montre l’image ci-dessus, exécutez :

exiftool dni-final.jpg

Ces étapes nous ont permis d’apposer un filigrane sur un document privé et de supprimer les métadonnées, de sorte à sécurisé à minima ce que nous envoyons.

J’espère que ces petites astuces vous aideront tout en restant loin de la préservation de la vie privée, mais parfois l’on doit faire à minima.

Linux – De l’interface graphique à la ligne de commande

de l'interface graphique à la ligne de commandeUn peu de ma vie privée, ou plutôt de celle de mes farfadets et mes fadettes, j’en ai deux de chaque.

Tous utilisent depuis leur tendre enfance linux… Maintenant, ils l’utilisent plus ou moins en fonction de leurs besoins. Pour celui qui l’utilise le plus, même exclusivement, il s’agit d’un de mes farfadets, l’autre, étant un « gamer« , et l’utilise le moins, les Fadettes sont entre les deux.

J’en viens à l’une des Fadettes, son pc est en dual boot, pour un usage professionnel, elle utilise au maximum linux (la grande majorité du temps) via les applications graphiques qui lui sont proposées, sauf pour certains de ces travaux.

L’interface graphique, c’est bien… Mais parfois, la ligne de commande, c’est mieux ! J’y viens !

« Papa, on a plusieurs photos de divers appareils (4) et elles se mélangent dans le répertoire, on doit rendre un travail chronologique… Tu m’as dit un jour qu’avec ton écran noir (un terminal) et tes lignes, ça peut se faire facilement… Tu peux me montrer ? » (Sur son pc, une multitude de fenêtres ouvertes sur plusieurs bureaux avec divers travaux en route… Pas question de les fermer pour passer sur un autre système d’exploitation).

Quand on me parle de mes lignes, ça me rend particulièrement fier, même si au fond de moi-même, je sais que quiconque lit le « man » de « find » et « exiv2 » peut en faire autant, voire mieux, mais bon…

Je lui dis, il suffit de suivre le billet sur mon blog « Renommer les photos par lot en utilisant les métadonnées EXIF« . Et là, magie ! En quelques secondes, les centaines de photographies se renomment par ordre chronologique.

Renommer les photos par lot en utilisant les métadonnées EXIF Magique ou presque, car l’un des appareils n’était pas à la bonne date et heure…
Alors, autres lignes de commande, c’est un peu plus long, en suivant le billet « Modifier la date de vos photos« , et le résultat final est parfait !
Je suis heureux de voir que ma Fadette s’en est très bien sorti et surtout qu’elle s’est rendu compte que la ligne de commande est un parfait complément à ce qui peut se faire via une interface graphique !

Supprimer les métadonnées de vos fichiers docx mp3 jpg pdf et autres

métadonnées - linux - matComment supprimer facilement les métadonnées d’un certain nombre de vos fichiers?

Vous allez voir comment cela peut être simple avec « Mat », mais avant tout, qu’est-ce qu’une métadonnée?

Une métadonnée est une(des) information(s) liée(s) à une donnée, un fichier.

Les métadonnées ont aussi leur importance et intérêt… Un DJ va enrichir les « tags » (métadonnées liées aux fichiers musicaux) pour les classer, et travailler dessus. J’utilise et enrichie les données des fichiers exif de mes photos pour diverses raisons…

Et alors?… Alors lisez la suite!

Bref! Les métadonnées ont leurs raisons d’être! Mais elles ont aussi leurs controverses… Si vous écrivez un trac politique ou syndical depuis votre poste de travail et que vous l’envoyez en lien?… Vous envoyez une photo sur un forum; vous souhaitez qu’on l’apprécie, mais souhaitez-vous qu’on vous identifie, qu’on localise la prise de vue?… J’avais déjà fait un billet sur « Supprimer les métadonnées EXIF avec exiv2 » et donner pour l’exemple avec un peu d’humour du cas w0rmer & CabinCr3w…

On peut trouver une multitude de bonnes raisons pour utiliser et enrichir les métadonnées comme pour les supprimer.

Supprimer les métadonnées avec Mat c’est simple!
Il suffit de l’installer, il supporte pour l’instant les formats:

  • PDF – Portable Document Format (pdf)
  • ZIP
  • tar.gz, tar.bz2, tar – TApe aRchiver (tar.gz, tar.bz2, tar)
  • jpg, jpeg
  • png – (Portable Network Graphics (png)
  • Torrent
  • odt, opt, … – (Opendocuments (odt, opt, …)
  • docx, pptx, … – (Openxml de Microsoft (docx, pptx, …)
  • mp3, mp2, mpa, … – (MPEG Audio (mp3, mp2, mpa, …)
  • ogg – (Ogg Vorbis (ogg)
  • flac – (Free Lossless Audio Codec (flac)

Pour l’installer, un simple « apt-get install mat » (sur ubuntu 14.04).

Il suffit de faire glisser les fichiers dont vous souhaitez effacer les métadonnées et cliquer sur « clean ».Clear nettoie la liste, pour en mettre une autre au besoin…

supprimer les métadonnées facilement

effacer facilement les métadonnées

Mat fonctionne aussi en ligne de commande.

Site officiel.

Afficher les metadonnees exif avec un clic droit sur Nautilus

nautilusPetit script utilisant exiv2 et simple à mettre en oeuvre.

1- Ouvrez un éditeur de texte, copiez les lignes ci-dessous et sauvegardez sous par exemple « exif.sh »

#! /bin/bash
# métadonnées exif avec exiv2
zenity --info --text " `exiv2 "$1" `"

2 – rendez-le exécutable : clic droit => Propriétés dans l’onglet « Permitions »
Cochez la case « Autoriser l’exécution du fichier comme un programme

3 – Ubuntu 14.04, placez le fichier dans ~.local/share/nautilus/scripts/

En ligne de commande, pas plus compliqué…
1 – avec par exemple « nano »

~$ nano .local/share/nautilus/scripts/exif.sh

on copie, on sauvegarde et on quitte.

#! /bin/bash
# métadonnées exif avec exiv2
zenity --info --text " `exiv2 "$1" `"

2 – on rend exécutable et on relance nautilus;

~$ chmod +x .local/share/nautilus/scripts/exif.sh | nautilus -q

Résultat dans les deux cas:
1 – clic droit sur l’image

Nautilus script exif
2 – Résultat 

Nautilus affiche metadonnees exif

Supprimer les métadonnées EXIF avec exiv2

supprimer données exif Womer & Cabincr3wMétadonnées EXIF, utilité et méfiance.

Si les métadonnées exif, et leur enrichissement peuvent être d’une grande utilité, sachez aussi vous en méfier.

En effet, pour des raisons professionnelles ou pour la gestion de photos à titre personnel, les données EXIF ont toutes leurs raisons d’être et sont une véritable richesse.

Par contre, si vous publier vos photos sur un quelconque site internet, dans la majeure partie des cas, pour des raisons de préserver votre vie privée, les métadonnées EXIF n’ont pas d’intérêt.

Pour les supprimer avec exiv2, rien de plus simple.

$ exiv2 -d a photo.jpg

 

En suivant les liens plus bas, vous saurez comment intégrer cette commande dans une boucle pour procéder par lot.
Pour l’anecdote avec un peu d’humour (c’était en 2012) :
Le pirate w0rmer & CabinCr3w (pour ne pas dire l’utilisateur de Scripts kiddies) a publié sur Twitter depuis son smartphone, deux photos, l’une du décolleté de sa petite amie, l’autre de son fessier moulé dans un short… Les métadonnées de ses images ont permis au FBI de le confondre…
Les médias parlent de hacker… Ha les cons! Il n’ont encore rien compris, hacker n’est pas synonyme de pirate, au contraire, et hacker ne s’applique pas seulement à l’informatique mais dans le bricolage créatif visant à améliorer le fonctionnement d’un système… Quelqu’un qui fait du tunning, est aussi un hacker! Les hackers existent depuis longtemps, bien avant les ordinateurs. Le terme de Hacker a perdu son prestige depuis le Crackdown de 1990, lorsque le système téléphonique US a globalement disjoncté, du fait d’une erreur de programmation des opérateurs, qui accusèrent pourtant le monde des BBS.

Pour en savoir plus sur les métadonnées EXIF :
Métadonnées EXIF d’une photo
Renommer les photos par lot en utilisant les métadonnées EXIF
Modifier les métadonnées EXIF de ses photos
Modifier la date de vos photos
Ajouter les coordonnées GPS dans EXIF avec exiv2

Vous pouvez aussi changer le nom de fichier de vos photos sans utiliser les métadonnées EXIF
Renommer les photos sans utiliser les métadonnées Exif

 

Modifier la date de vos photos

Modifier la date de vos photosModifier la date de vos photos sous linux en ligne de commande.

Votre appareil est resté longtemps sans ses piles, vous en avez mis des neuves, et pris des photo sans remettre votre appareil à la bonne date et heure…

Vous allez donc devoir…

Modifier la date sur le fichier EXIF de vos photos.

Mettez vos clichés à modifier dans un répertoire.

Voyez la suite….

Ouvrez un shell et vérifiez le contenu du répertoire avec la commande « ls ».

$ ls
DSCN3449.JPG  DSCN3450.JPG  DSCN3451.JPG  DSCN3452.JPG  DSCN3453.JPG  DSCN3454.JPG  DSCN3455.JPG  DSCN3456.JPG

Vérifiez la date d’une des images du répertoire avec « exiv2 image.jpg »
$ exiv2 DSCN3449.JPG

Nom du fichier        : DSCN3449.JPG
Taille du fichier     : 1230426 Octets
Type MIME             : image/jpeg
Taille de l'image     : 2304 x 3072
Marque de l'appareil  : NIKON
Modèle de l'appareil  : COOLPIX L12
Horodatage de l'image : 2010:05:02 05:32:43
Numéro de l'image     : 
Temps d'exposition    : 1/469 s
Ouverture             : F2.8

La date affiche 02/05/2010 à 05:32:43 alors que l’image a été prise (supposons) le 01/05/2012 à entre 14h et 15h.
Nous allons modifier la ligne « Horodatage de l’image: 2010:05:02 05:32:43 » en ligne de commande.
Plusieurs champs peuvent intervenir pour l’affichage de l’heure, on peut vérifier avec la ligne suivante:
exiv2 -p v DSCN3449.JPG | grep DateTime

$ exiv2 -p v DSCN3449.JPG | grep DateTime
0x0132 Image    DateTime             Ascii   20  2010:05:02 05:32:43
0x9003 Photo    DateTimeOriginal     Ascii   20  2010:05:02 05:32:43
0x9004 Photo    DateTimeDigitized    Ascii   20  2010:05:02 05:32:43

Il y a donc trois champs à modifier.
On peut déjà modifier la première photo en trois ligne avec la commande « exiv2 » et l’option « -Mset »

$ exiv2 -M"set Exif.Image.DateTime 2012:05:01 14:32:43" DSCN3449.JPG
$ exiv2 -M"set Exif.Photo.DateTimeOriginal 2012:05:01 14:32:43" DSCN3449.JPG
$ exiv2 -M"set Exif.Photo.DateTimeDigitized 2012:05:01 14:32:43" DSCN3449.JPG

Oui, mais si vous avez plusieurs photos cela risque de devenir très vite fastidieux, l’idéal est de trouver la bonne boucle à faire.
Déplacez l’image que vous venez de modifier pour éviter que les changements lui soient appliqués.
Faire une modification de date dans une boucle, c’est risquer de se retrouver avec tous les clichés à la même date, à la seconde près. A moins de faire un script assez complexe.
Nous allons nous simplifier la tâche en ajustant l’heure. L’option « ad » de la commande « exiv2 » permet l’ajustement de cette donnée en ajoutant ou retirant des tranches de temps. En fait, il faudra préciser le nombre d’années, mois, jours et heures de décalage.

Dans un premier temps nous allons chercher l’intervalle entre la date du cliché et celui de la prise de vue, soit (01/05/2012 14:32 – 02/05/2010 05:32).

Vous pouvez utiliser un tableur ou un calculateur en ligne.
Résultat: 1 year, 11 months, 29 days, 9 hours
Une fois le décalage évalué, on va l’appliquer avec « exiv2 », donc ajouter 1 ans, 11 mois, 29 jours, 9 heures et 00 minutes, il suffit d’exécuter:
« exiv2 -a 9:00 -Y 1 -O 11 -D 29 ad image.jpg »
Mais nous allons l’introduire dans une boucle « For Do Done« 

$ for i in *; do exiv2 -a 9:00 -Y 1 -O 11 -D 29 ad $i;done

Vérifions sur une des images:

$ exiv2 -p v DSCN3452.JPG | grep DateTime
0x0132 Image    DateTime            Ascii   20  2012:05:01 14:36:22
0x9003 Photo    DateTimeOriginal    Ascii   20  2012:05:01 14:36:22
0x9004 Photo    DateTimeDigitized   Ascii   20  2012:05:01 14:36:22

Réussi !
Maintenant vous pouvez renommer vos photos en utilisant la date et heure du fichier exif.

Ajouter les coordonnées GPS dans EXIF avec exiv2

mettre les coordonnées gps dans exif avec exiv2.pngLinux, exiv2 et ajout des coordonnées GPS dans EXIF

Ajouter les coordonnées GPS à une photo en ligne de commande nécessiterai trois (3) lignes de commande, ce script peut simplifier la tâches.

Ici un petit script permettant de rentrer des coordonnées GPS dans les métadonnées EXIF dans une série de photos.

« exiv2 » doit être installé… sinon:

apt-get install exiv2

Ce script va vous poser quelques questions, bien entendu, il ne faut pas mettre les parenthèses…

Les questions qui vous seront posées:

  • Entrez l’extension de fichier en respectant la casse (jpg) (JPG) (RAW)… : Tapez JPG ou jpg ou RAW ,bref l’extension de votre série photos en respectant la casse, c’est-à-dire, en majuscules ou minuscules…
  • Entrez la latitude (N) ou (S) : N ou S Cela se transformera en North ou South sur les tags exif
  • Entrez la latitude sous forme ex (48/1 13/1 24/1) : Imaginons la latitude à rentrer est 48°, 13min et 24sec… vous devrez le saisir sous forme de 48/1 13/1 24/1 et cela donnera 48deg 13′ 24″ sur le tag exif.
  • Entrez la longitude (E) ou (O) : E ou O cela se transformera en East ou West
  • Entrez la longitude sous forme ex (9/1 52/1 51/1) : (même principe que pour la latitude).

Le sript:

#!/bin/bash
# Ajouter les données GPS aux métadonnées EXIF - Sima78
# Entrez vos données GPS sans les parenthèses... :-)"
echo -n "Entrez l'extention de fichier en respectant la casse (jpg) (JPG) (RAW)... : "
read form
echo -n "Entrez la latitude (N) ou (S) : "
read latref
echo -n "Entrez la latitude sous forme ex (48/1 13/1 24/1) : "
read lat
echo -n "Entrez la longitude (E) ou (O) : "
read longref
echo -n "Entrez la longitude sous forme ex (9/1 52/1 51/1) : "
read long
for i in *.$form
   do
      exiv2 -M"set Exif.GPSInfo.GPSLatitudeRef $latref" $i
      exiv2 -M"set Exif.GPSInfo.GPSLatitude $lat" $i
      exiv2 -M"set Exif.GPSInfo.GPSLongitudeRef $longref" $i
      exiv2 -M"set Exif.GPSInfo.GPSLongitude $long" $i
   done
echo "TERMINE"

Pour utiliser ce script, copiez-le dans votre éditeur texte favori et enregistrez sous… par exemple: ajout-gps-exif.sh

Le rendre exécutable par:

chmod +x ajout-gps-exif.sh

Le placer dans le dossier de vos clichés à modifier et le lancer par:

./ajout-gps-exif.sh

Pour voir le résultat:

exiv2 -pt votre_photo.JPG

Exemple de résultat:

(...)
Exif.GPSInfo.GPSLatitudeRef     Ascii    2  North
Exif.GPSInfo.GPSLatitude        Rational 3  48deg 13' 24" 
Exif.GPSInfo.GPSLongitudeRef    Ascii    2  East
Exif.GPSInfo.GPSLongitude       Rational 3  9deg 52' 51"

Ce script utilise une simple boucle (for, do, done) il est donc facile de l’enrichir avec d’autres champs complémentaires (copyright, auteur, commentaire, etc…)

Liste des champs possibles sur www.exiv2.org/tags.html

Modifier les métadonnées EXIF de ses photos

Modifier les métadonnées EXIF avec Exiv2Modifier les métadonnées EXIF de ses photos

Comment rajouter des informations aux données « EXIF » d’une photo? En effet il manque souvent l’auteur, le commentaire… Je vous propose l’une des méthodes sous linux…

Rapide, car légère, puisqu’en ligne de commande.

Avant de commencer, ayez une idée de ce qu’est un fichier EXIF d’une photographie, ensuite prenez connaissance des variables susceptibles d’enrichissement.
C’est fait? Alors c’est parti…

Imaginons, j’ai pris une série de photographies, avant de les renommer je souhaite rajouter d’autres renseignement aux métadonnées « EXIF »: Un commentaire, le lieu de prise et nom de la plante que j’ai photographié dans la série, il s’agit de la colchique d’automne (Colchicum autumnale).
Si je n’avais qu’une photographie à modifier j’utiliserai la ligne suivante:

$ exiv2 -M"set Exif.Photo.UserComment charset=Ascii Paris - Colchicum autumnale (colchique d'automne) " DSC_0013.JPG

Mais voilà, j’ai plusieurs photographies à modifier, alors je vais utiliser une boucle « for, do, done » et pourquoi pas en faire un script pour éviter la réécriture de la ligne à chaque fois, à vous de voir.

Ajoutons aux données EXIF un commentaire pour le nom et lieu: Paris – Colchicum autumnale (colchique d’automne)

$ for i in *.JPG; do exiv2 -M"set Exif.Photo.UserComment charset=Ascii Paris - Colchicum autumnale (colchique d'automne)" $i; done

Vérifions avec la commande exiv2 et l’option « -pt » pour plus de détail:

$ exiv2 -pt DSC_0012.JP
(...)
Exif.Nikon3.Saturation           Ascii      16  NORMAL
Exif.Nikon3.VariProgram          Ascii      16  AUTO
Exif.Photo.UserComment           Undefined  56  Paris - Colchicum autumnale (colchique d'automne)
Exif.Photo.SubSecTime            Ascii       3  50
(...)

De la même façon on peut mettre le nom d’auteur, le Copyright etc.
Exemple:

$ for i in *.JPG; do exiv2 -M"set Exif.Image.Artist Mon_prenom et NOM" $i; done
$ for i in *.JPG; do exiv2 -M"set Exif.Image.Copyright Creative Commons BY-NC-SA" $i; done
$ exiv2 -pt DSC_0012.JP
(...)
Exif.Image.Artist                 Ascii      18  Mon_prenom et NOM
Exif.Image.YCbCrPositioning       Short       1  Co-sited
Exif.Image.Copyright              Ascii      26  Creative Commons BY-NC-SA
(...)
Exif.Photo.UserComment            Undefined  56  Paris - Colchicum autumnale (colchique d'automne)
(...)

Renommer les photos par lot en utilisant les métadonnées EXIF

Renommer une photo en utilisant les métadonnées exif avec exiv2Renommer des photos par lot en utilisant des données EXIF de chaque image.

Ou comment avoir un nom ressemblant à « 2010-0613-16h07m08s-chantier.JPG » au lieu de « DSC_0005.JPG »

Prérequis:
« exiv2 » doit être installé.
On va utiliser les commandes « find » et « exiv2 « 

Voyons ce qu’il y a dans le répertoire courant:

$ ls
DSC_0005.JPG DSC_0006.JPG DSC_0007.JPG DSC_0008.JPG

On va renommer les photos en utilisant une partie des métadonnées EXIF de chaque image en une seule commande (ici date et heure de prise de vue).

$ find -iname "DSC_*" -exec exiv2 -r %Y-%m%d-%Hh%Mm%Ss-chantier mv {} +
$
$ ls -l
total 10004
-rwxr-xr-x 1 sima sima 2976990 2010-06-13 16:07 2010-0613-16h07m08s-chantier.JPG
-rwxr-xr-x 1 sima sima 2538376 2010-06-13 16:07 2010-0613-16h07m27s-chantier.JPG
-rwxr-xr-x 1 sima sima 2231659 2010-06-13 16:07 2010-0613-16h07m51s-chantier.JPG
-rwxr-xr-x 1 sima sima 2472989 2010-06-13 16:07 2010-0613-16h07m57s-chantier.JPG

Que c’est-il passé?
La commande find a recherché les fichiers dont le nom commence par DSC_
Lorsque la réponse est vrai (renvoi 0) exécute la commande exiv2
La commande exiv2 va renommer en prenant l’année (%Y), le mois (%m), le jour (%d), l’heure (%H), les minutes (%M) et les secondes (%S) de prise de vue en y ajoutant les personnalisations les () (hms) de heure, minutes et secondes puis chantier.

En faisant «man exiv2» ou «man find» on peut voir l’étendue des possibilités.

ATTENTION ! cette commande est récursive et si vous avez des sous-répertoires avec des fichiers correspondant à la requête, ils seront également modifiés. Dans ce cas, vous pouvez utiliser la commande exiv2 dans une boucle for, do, done

Il est facile d’en faire un script…

Métadonnées EXIF d’une photo

Métadonnées Exif d'une photographieMétadonnées EXIF d’une photo.

Lorsque vous prenez une photo avec votre appareil photo numérique, il crée, en plus de l’image, une multitude de données EXIF (Exchangeable Image File format).

Ces données EXIF nous renseignent sur les propriétés de l’image (elles peuvent être modifiées, il ne s’agit donc pas de valeurs sûres):

– date,heure de la prise de vue
– marque de l’appareil
– ouverture et vitesse de prise de vue
– avec ou sans flash
– etc.

Exemple de métadonnées exif.

$ EXIF DSC_0132.JPG
Marqueurs EXIF dans'DSC_0132.JPG' (ordre des octets 'Motorola') :
---------------------+-----------------
Marqueur            |Valeur
---------------------+-----------------
Constructeur         |NIKON CORPORATION
Modèle               |NIKON D50
Orientation          |haut - gauche
x-résolution         |300,00
y-résolution         |300,00
Unité de la résolu   |pouces
Logiciel             |Ver.1.00
Date et heure        |2010:07:11 18:41:01
Positionnement YCbCr |co-situés
Compression          |Compression JPEG
x-résolution         |300,00
y-résolution         |300,00
Unité de la résolu   |pouces
Positionnement YCbCr |co-situés
Temps d'exposition   |1/250 sec.
Focale               |f/2,8
Exposure Program     |Priorité ouverture
Version d'exif       |Exif version 2.21
Date et heure (origi |2010:07:11 18:41:01
Date et heure (numé  |2010:07:11 18:41:01
Components Configura |Y Cb Cr -
Bits compressés par  |4,00
Correction d'exposit |0,00 EV
MaxApertureValue     |1,00 EV (f/1,4)
Mode de mesure       |Motif
Source lumineuse     |0
Flash                |Le flash ne s'est pas déclenché.
Longueur focale      |50,0 mm
Note du créateur     |28700 bytes undefined data
Commentaire de l'uti |
SubsecTime           |90
SubSecTimeOriginal   |90
SubSecTimeDigitized  |90
FlashPixVersion      |FlashPix version 1.0
Espace des couleurs  |sRGB
PixelXDimension      |3008
PixelYDimension      |2000
Méthode d'acquisiti  |Sonde de couleur à un capteur
Source du fichier    |DSC
Type de scène        |1
Motif CFA            |8 bytes undefined data
Rendu personnalisé   |Processus normal
Mode d'exposition    |Exposition automatique
Balance des blancs   |Balance des blancs automatique
Valeur du zoom numé  |1,00
Longueur focale dans |75
Type de capture de l |Standard
Contrôle du gain     |Normal
Contraste            |Normal
Saturation           |Normal
Netteté              |Normal
Échelle de distance  |Inconnu
InteroperabilityInde |R98
InteroperabilityVers |0100
---------------------+-----------------
Les données EXIF contiennent une vignette (8581 octets).