Ecriture de champs IPTC par lot depuis un fichier CSV

Ask for help and post your question on how to use XnView Classic.

Moderators: XnTriq, helmut, xnview

nixo54
Posts: 2
Joined: Tue Feb 28, 2023 2:57 pm

Ecriture de champs IPTC par lot depuis un fichier CSV

Post by nixo54 »

Bonjour

j'ai un grand nombre de photos à scanner (environ 5000). Elles sont toutes référencées dans un fichier CSV. Chaque photo est désignée par un numéro de référence dans ce fichier.

Ma question est assez simple : une fois les photos scannées et nommées par leur numéro de référence, est il possible de donner a XNView le dossier contenant les photos, le fichier CSV et que pour chaque image il insère les champs IPTC dans les fichiers de façon automatique ?

J'ai cherché une solution pour faire ça mais pour le moment je ne trouve rien. Si XNView ne sait pas le faire, connaissez vous une solution (de préférence pas trop compliqué) pour faire ça ?

Merci beaucoup pour votre aide
Nicolas
User avatar
michel038
XnThusiast
Posts: 1248
Joined: Tue Sep 27, 2016 8:18 am
Location: France

Re: Ecriture de champs IPTC par lot depuis un fichier CSV

Post by michel038 »

Il y a une solution en dehors de Xnview, mais je ne suis pas sûr que le qualificatif "pas trop compliqué" s'applique.
Ca consiste à utiliser ExifTool ...

Si votre ordi est sous windows (et si vous parlez de fichiers jpg)
Supposons que votre dossier de photos soit D:\Photos

Il faudra préparer le fichier CSV avec une ligne d'en-tête qui comporte précisément le nom des métadonnées (syntaxe exiftool) à écrire, séparées par des virgules. Le premier terme de cet en-tête est : SourceFile
Dans le fichier, une ligne pour chaque photo, avec les champs séparés par des virgules, dans l'ordre des en-têtes.
Le premier champ est le nom de fichier.
Il me semble plus sûr et plus efficace que tous les noms de photos soient complets (D:\Photos\2023\02\scan012345.jpg)


Copiez exiftool.exe et votre "fichier.csv" dans le dossier D:\Photos
Ouvrez une fenêtre de commande cmd, et allez dans ce dossier ( cd d:\Photos)

La commande exiftool est du type

Code: Select all

exiftool -ext jpg -r -csv="fichier.csv" "D:\Photos"
- Le paramètre -ext jpg indique que le traitement se limite aux fichiers ayant l'extension .jpg.
- Eventuellement, vous lancerez une deuxième fois la commande si certains fichiers ont une extension en majuscules (.JPG)
- Le paramètre -r indique la récursivité (traiter tous les dossiers dans D:\Photos)
- Le paramètre -csv="fichier.csv" indique à exiftool la source des données
- Et "D:\Photos" c'est la cible.

ExifTool crée une copie de sauvegarde chaque photo avec le suffixe _original ( scan012345.jpg_original ) ce qui va induire un doublement du volume de votre dossier
C'est une sécurité au cas où une erreur de syntaxe de la commande endommagerait les photos.
Pour éviter ce processus, testez votre traitement exiftool sur un petit lot de photos copiées dans un dossier de test. Une fois que vous êtes sûr de la méthode, ajoutez le paramètre -overwrite_original à la commande . Les copies ne seront plus créées.

Vous pouvez aller voir le chapitre 3D de ma doc exiftool (lien ci-dessous)
Last edited by michel038 on Tue Feb 28, 2023 11:59 pm, edited 1 time in total.
nixo54
Posts: 2
Joined: Tue Feb 28, 2023 2:57 pm

Re: Ecriture de champs IPTC par lot depuis un fichier CSV

Post by nixo54 »

ohhhh !!! Mille mercis d'avoir pris la peine de me repondre avec autant de détails. Ca me semble clair et précis. Je vais faire des tests dans ce sens. Si jamais je bloque sur quelque chose je me permettrai de vous remettre un message ici si vous voulez bien.
Ce n'est pas trop compliqué pour moi donc pas de soucis, j'avais peur d'avoir a coder des routines ou des choses comme ça. Il faut juste que je ne me trompe pas dans la préparation du fichier csv en suivant la syntaxe exiftool. Encore merci :)