Photoshop : Script pour insérer les EXIF dans une photo

Quel photographe n’a jamais rêvé d’indiquer automatiquement sur ses photographies les informations EXIF de prise de vue ? Est-ce réalisable avec Photoshop ?
Premier article d’une série dédié à la programmation de Photoshop, que je désirais faire depuis un certain temps déjà, je vous propose de voir comment très « simplement » réaliser ce genre d’opération, notamment avec quelques astuces pour insérer les informations EXIF et même quelques champs IPTC sur vos photos 😉

(code compatible avec Photoshop CS2 et CS3 – à voir pour la compatibilité avec les versions ultérieures !)

À CONSULTER ÉGALEMENT : Pour en savoir plus sur la retouche photo

Préambule : la programmation de Photoshop

Le fonctionnement de ce que l’on appelle les scripts (aussi appelés « actions », bien qu’ils figurent dans la palette nommée « Scripts ») est connu de tout utilisateur un tant soit peu habitué à Photoshop. Ils permettent de mémoriser une succession d’actions réalisées par l’utilisateur et de les réexécuter avec un certain nombre de possibilités (je vous réfère à cet article pour en savoir un peu plus à ce propos…)

Toutefois, ces scripts (qui s’apparentent aux macros que l’on peut enregistrer sous Excel ou Word) ont des limites, et ne permettent par exemple pas d’exécuter des actions conditionnelles, paramétrables, ou encore de récupérer des informations relatives à une composition ou une photographie. Et c’est là qu’intervient une autre fonctionnalité méconnue de Photoshop : la programmation des scripts.
Photoshop permet l’exécution de divers types de scripts :

  • L’AppleScript, propre aux plate-formes Mac et implémenté au niveau du système d’exploitation (extension .scpt, facultative)
  • Le VBScript, propre aux plate-formes PC sous Windows (fichiers texte avec extension .vbs)
  • Le Javascript, compatible avec les deux plate-formes (fichiers texte avec extension .jsx ou .js)

Nous allons donc nous intéresser à créer de petits scripts JSX, du fait de leur compatibilité avec les deux plate-formes connues utilisées avec Photoshop. On peut utiliser ces scripts en passant par le menu Fichier / Script, soit en les chargeant manuellement en cliquant sur le menu Parcourir… et en allant chercher notre fichier .jsx, ce qui aura pour effet de l’exécuter immédiatement, soit – ce qui nous intéresse le plus – en copiant nos scripts .jsx dans le sous-répertoire \Paramètres prédéfinis\Scripts du répertoire d’installation de Photoshop, ce qui permettra de les utiliser directement dans des actions enregistrables !

Pour en savoir plus sur la programmation de Photoshop, je vous invite à vous rendre dans le sous-répertoire \Guide des scripts du répertoire d’installation de Photoshop ^_^ (attention, un peu lourd à digérer au début, et demande un minimum de notions en programmation !)

Insérer EXIFs et IPTC dans nos photographies : méthodologie

Comme il n’est pas question ici de faire un cours de programmation, ni de vous prémâcher le travail, je vous propose de voir comment très simplement, nous allons pouvoir créer des scripts qui seront réutilisables dans Photoshop ! Le principe est donc le suivant :

  • créer des scripts JSX qui se contenteront d’ajouter un calque texte contenant les informations désirées, non mises en forme
  • utiliser ces scripts JSX dans des actions Photoshop enregistrées dans des macros, afin de pouvoir travailler avec le calque texte généré
  • éventuellement, automatiser intégralement le processus, par exemple avec le processeur de scripts (voir cet article pour plus d’informations à ce propos !)

La base de nos documents JSX sera la suivante (je ne vais pas faire de cours de programmation, aussi les commentaires dans le code vous aideront à en comprendre la signification !) :

//////////////////////////////////////////////////////////////////////// ///// Base de script pour insertion de calques de texte ///// ///// © Cédric Girard - https://blog.aube-nature.com //////////////////////////////////////////////////////////////////////// #target photoshop      // Script dédié à Photoshop app.bringToFront();    // On place Photoshop au premier plan displayDialogs = DialogModes.NO;    // Désactivation des boîtes de dialogue  // Sauvegarde des unités de mesure en cours, et passage en pixels par défaut var oRulerUnits = preferences.rulerUnits; var oTypeUnits = preferences.typeUnits; preferences.rulerUnits = Units.PIXELS; preferences.typeUnits = TypeUnits.PIXELS;  try { var DocActif = activeDocument;    // Document actif (image ouverte au premier plan) // Définition d'une variable définissant une couleur blanche, que nous utiliseront plus loin var colorBlanc = new SolidColor(); colorBlanc.rgb.red = 255; colorBlanc.rgb.blue = 255; colorBlanc.rgb.green = 255; // On crée un nouveau calque texte var oLayer = DocActif.artLayers.add(); oLayer.kind = LayerKind.TEXT;    // Type de calque = calque de texte oLayer.name = "Nom du calque";    // Nom du calque var oTextItem = oLayer.textItem;   // On définit une variable qui permettra de simplifier les accès au calque de texte créé oTextItem.font = "Century gothic";    // Définition de la police oTextItem.size = 14;    // Définition de la taille de police oTextItem.color = colorBlanc;    // Définition de la couleur du texte  ///////////////////////////////////////////////////////////////////// ////////// ZONE MODIFIABLE (insertion de votre texte) ///////////////////////////////////////////////////////////////////// ////////// // Pour créer un retour à la ligne (parfois utile) insérer "\u000D"  oTextItem.contents = "ici le texte à ajouter";    // Contenu du texte  ////////// ////////// ///////////////////////////////////////////////////////////////////// // Centrage du calque de texte au milieu de la compo (par défaut) var LargeurTexte = (oLayer.bounds[2] - oLayer.bounds[0]);    // Largeur du calque de texte var HauteurTexte = (oLayer.bounds[3] - oLayer.bounds[1]);    // hauteur du calque de texte oTextItem.position = [(DocActif.width-LargeurTexte) / 2, (DocActif.height-HauteurTexte) / 2]; } catch(oErreur) { // Une erreur est survenue... alert( "Une erreur est survenue : " + oErreur.description) }  // Remise en place des unités de mesure initiales preferences.rulerUnits = oRulerUnits; preferences.typeUnits = oTypeUnits;  ////////// FIN DU SCRIPT //////////////////////////////////////////// Langage du code : JavaScript (javascript)

Vous remarquerez la zone entourée de commentaires au milieu du script, c’est là que nous allons donc insérer notre texte ! Passons maintenant aux choses sérieuses… Les métadonnées se trouvent dans l’objet info de chaque objet document ouvert dans Photoshop. C’est ce que nous allons utiliser pour lire les champs EXIF et IPTC qui nous intéressent !

Insérer les données EXIFs

La lecture des données EXIF dans une image n’est pas une chose simple, que cela soit en Javascript ou autrement d’ailleurs. Néanmoins, Photoshop et son modèle objet permettent un accès relativement aisé à ces données, moyennant un peu de tâtonnement, mais une fois la solution trouvée, tout devient simple… ou presque 😀

En fait, tout serait simple si Adobe avait conservé, d’une version à l’autre de son outil phare, la même organisation des informations (notamment EXIF) ! Mais ce n’est pas le cas, aussi je vous proposerai, uniquement pour les champs EXIF, deux codes légèrement différents selon que vous utilisez Photoshop CS2 ou CS3 (je n’ai pas testé avec les versions précédentes, ne disposant que de CS2 et d’une version éval de CS3 !)

Avec Photoshop CS2 :

Je suis arrivé à mes fins en affichant l’intégralité des données EXIF dans une boîte de dialogue (instruction alert en javascript), dans le code ci-dessus avec DocActif.info.exif (en javascript, les tableaux sont affichables et accessibles comme une simple chaîne de caractères…) ; chaque information est stockée après un code sur 6 chiffres, ainsi (à titre d’exemple) la sensibilité utilisée est stockée après le code 134855. De simples fonctions de chaînes de caractères permettent donc d’en récupérer les valeurs 😉

Le code pour récupérer les EXIF est donc le suivant (ici par exemple pour récupérer l’ouverture utilisée) :

// Lecture des informations EXIF contenues dans l'image var header = " 133434 "; for(n = 0; n < DocActif.info.exif.length; n = n + 1 ) { var oTemp = DocActif.info.exif[n][1];&lt;/code&gt; // Ouverture focale if(oTemp.indexOf(" 133437")!=-1) { var exifOuverture = oTemp.substr(header.length,oTemp.length-header.length); } } oTextItem.contents = exifOuverture;    // On écrit l'ouverture dans notre calque de texte Langage du code : JavaScript (javascript)

Ceci étant dit, il nous est désormais très simple d’aller lire les informations EXIF, qui par chance sont pré-formattées par Photoshop (pour avoir programmé un outil de lecture de ces données en Visual Basic.Net, je peux vous dire qu’à l’état brut dans l’image, c’est autre chose !!!) ; voici une liste non exhaustive de « marqueurs » intéressants :

  • 133434 : Durée d’exposition (formattée sous la forme « 1/30 sec »)
  • 136867 : Date de prise de vue (nécessitant une manipulation pour obtenir un format utilisable)
  • 100272 : Modèle d’appareil photo utilisé (format « constructeur », par ex. « Canon EOS 5D »)
  • 133437 : Ouverture (formattée sous la forme « f/4.5 »)
  • 134855 : Sensibilité ISO
  • 137386 : longueur focale (formattée sous la forme « 100.0 mm »)
  • 137380 : correction d’exposition (formattée sous la forme « 0.00 » ou « -0.33 »)

Partant de ces éléments, je vous laisse le soin d’arranger à votre goût le formattage de ces informations, en reportant les codes ci-dessus dans le morceau de code présenté précédemment, sur la ligne if(oTemp.indexOf(" 133437")!=-1) (attention à bien respecter l’espace juste avant le code !). Je vous renvoie (pour ceux qui ne maîtrisent pas le Javascript et de manière plus générale la programmation) deux chapitres plus loin, pour télécharger directement les scripts prêts à l’emploi !

Avec Photoshop CS3 :

Quelle ne fut pas ma déconvenue lorsqu’un utilisateur m’indiqua à la publication de cet article, que CS3 ne gérait pas de la même manière les champs EXIF ! Il a donc fallu modifier le code en conséquence (j’aurais voulu utiliser la propriété Application.Version du modèle objet de Photoshop, censée retourner le n° de version de Photoshop, de manière à n’avoir au final qu’un seul et unique script mais cela ne fonctionne pas à priori…) et ajouter deux fonctions bien utiles, que m’a indiqué Patrick (alias Mainsoft du forum Chassimages), pour gérer plus simplement tout cela (code à insérer juste en-dessous de la ligne var DocActif = activeDocument;, juste avant la déclaration des variables utiles) :

var exifData = DocActif.info.exif.toString(); var exifArray = explodeArray(exifData,",");  //////////////////////////////////////////////////////////////////////// // Function: explodeArray (credit: Joe Colson) // Usage: creates array of strings from argument item using delimiter as index // Input: string item, delimiter // Return: tempArray, an array of strings from string argument item //////////////////////////////////////////////////////////////////////// function explodeArray(item, delimiter) { tempArray = new Array(); var Count = 0; var tempString = new String(item); while (tempString.indexOf(delimiter) &amp;gt; -1) { tempArray[Count] = tempString.substr(0,tempString.indexOf(delimiter)) tempString = tempString.substr(tempString.indexOf(delimiter) + 1, tempString.length - tempString.indexOf(delimiter) + 1) Count = Count + 1 } return tempArray; } // End explodeArray  //////////////////////////////////////////////////////////////////////// // Function: getArrayString (credit: Joe Colson) // Usage: searches for string searchString // Input: inputArray, searchString // Return: string PREVIOUS "searchString" in array inputArray // Modif Cédric GIRARD (recherche par code et non par appelation de champs) // cause versions multilingues de Photoshop //////////////////////////////////////////////////////////////////////// function getArrayString(inputArray,searchString) { for(n = 0; n < inputArray.length; n = n + 1 ) { if(inputArray[n] == searchString) { return inputArray[n - 1]; } } } // End getArrayString Langage du code : JavaScript (javascript)

Le code de récupération des valeurs de champs EXIF est du coup plus « simple » qu’avec CS2, grâce à ces fonctions bien utiles :

var exifOuverture = getArrayString(exifArray, "33437");  Langage du code : JavaScript (javascript)

Ici, le code recherché change légèrement car amputé de 100000 ; ainsi, les codes à utiliser sont les suivants ::

  • 33434 : Durée d’exposition (formattée sous la forme « 1/30 sec »)
  • 36867 : Date de prise de vue (nécessitant une manipulation pour obtenir un format utilisable)
  • 272 : Modèle d’appareil photo utilisé (format « constructeur », par ex. « Canon EOS 5D »)
  • 33437 : Ouverture (formattée sous la forme « f/4.5 »)
  • 34855 : Sensibilité ISO
  • 37386 : longueur focale (formattée sous la forme « 100.0 mm »)
  • 37380 : correction d’exposition (formattée sous la forme « 0.00 » ou « -0.33 »)

On notera la « dangerosité » du code permettant de récupérer le modèle d’appareil photo… même s’il est peu probable d’avoir cette valeur quelque part dans l’un des champs ! L’essentiel étant que cela fonctionne ^_^

Insérer les champs IPTC

La gestion des champs IPTC est beaucoup plus simple car identique quelle que soit la version de Photoshop, et puisqu’il s’agit de propriétés directes de l’objet info du document que l’on utilise. Néanmoins, l’accès à ces informations est limité puisque seules certaines données IPTC (à priori celles disponibles dans la première version de la norme) sont accessible. Dans notre maquette de script, cela donnerait donc très simplement :

oTextItem.contents = DocActif.info.title;    // On écrit le titre de la zone IPTC "Etat" dans notre calque de texte Langage du code : JavaScript (javascript)

Les principaux champs accessibles sont ici (liste non exhaustive ; remplacer « title » dans le code ci-dessus) :

  • title : champs « Titre » de la zone « État » (sous Photoshop ou Bridge, appelée aussi « Titre du document »)
  • headline : champs « Titre » de la zone « Contenu » (sous Photoshop ou Bridge, appelée « Titre » tout court)
  • caption : champs « Description » sous Photoshop (sous Lightroom, correspond à la zone « Contenu / Légende »)
  • instructions : champs « Instructions » (qui contient généralement les informations de copyright, par ex. « © Cédric GIRARD »)

En complément, je vous indique aussi comment récupérer le nom du fichier, ce qui peut parfois être utile :

oTextItem.contents = DocActif.name;     // On écrit le nom du document actif (ex : "_MG_1234.JPG") Langage du code : JavaScript (javascript)

Je me limiterai à ces 5 champs dans le cadre de cet article, et je vous invite au chapitre qui suit pour télécharger directement les scripts JSX qui les concernent !

Les scripts JSX qui serviront à créer vos propres actions

Voici donc une petite liste de scripts JSX à copier dans le sous-répertoire \Paramètres prédéfinis\Scripts du répertoire d’installation de votre version de Photoshop 😉 ; pour les télécharger, cliquez ici pour CS2 et ici pour CS3 (fichier ZIP à décompacter dans le répertoire cité précédemment).

Au programme :

  • Insertion EXIF complet avec modele APN.jsx : insertion d’un calque texte avec le modèle d’appareil utilisé, et sur la ligne suivante les EXIF (focale, ouverture, vitesse, ISO, et le cas échéant correction d’exposition)
  • Insertion EXIF complet.jsx : idem précédemment, mais sans la première ligne comportant le modèle d’appareil photonumérique utilisé
  • Insertion EXIF date courte.jsx : insertion d’un calque texte avec la date de prise de vue EXIF (format « 15/02/2008 »)
  • Insertion EXIF date longue.jsx : insertion d’un calque texte avec la date de prise de vue EXIF (format « 15 février 2008 »), avec gestion du « 1er » du mois 😉
  • Insertion EXIF modele APN.jsx : insertion d’un calque texte avec le modèle d’appareil utilisé
  • Insertion IPTC Description.jsx : insertion d’un calque texte avec la description IPTC de l’image
  • Insertion IPTC Instructions.jsx : insertion d’un calque texte avec les instructions IPTC de l’image (contenant souvent le copyright, faute de pouvoir accéder au champs spécifique à ce dernier !)
  • Insertion IPTC Titre contenu.jsx : insertion d’un calque texte avec le titre de la zone IPTC « Contenu »
  • Insertion IPTC Titre état.jsx : insertion d’un calque texte avec le titre de la zone IPTC « État » (sous Photoshop, équivaut à la zone « Titre du document »)
  • Insertion nom du fichier.jsx : insertion du nom du fichier actif (par ex : « _MG_1234.JPG »)

Une fois les fichiers copiés au bon endroit, relancer Photoshop, puis vérifier leur bonne présence dans le menu Fichier / Scripts :

Liste de scripts d'insertion EXIF et IPTC dans Photoshop

Et voici ce que l’on peut obtenir très rapidement grâce à ces scripts :

Exemple d'insertion automatique des EXIF dans Photoshop

Conclusion

Voilà terminé le premier article consacré à la programmation de Photoshop, en espérant qu’il vous apportera des ressources complémentaires intéressantes pour vos propres utilisations concernant les EXIF et autres champs IPTC dans Photoshop ;-). J’ai volontairement limité le rendu final à son strict minimum, de manière à ce que vous puissiez vous-même mettre en pratique ce type de fonctionnalité !

Prochaines étapes : les manipulations conditionnelles d’images… Mais ceci est une autre histoire : à suivre !

50 réflexions sur “Photoshop : Script pour insérer les EXIF dans une photo”

  1. Avatar de Yael
    Yael

    J’ai chargé les scripts et mis en place. C’est génial, ça marche à merveille.
    Vu que je n’y connais rien en programmation, je te dis un ENORME MERCI.
    Yael Shiff Eilat Israel

    Répondre
  2. Avatar de Cédric Girard
    Cédric Girard

    Bonjour Yael

    Heureux que ça ait pu te rendre service ! Et heureux d’avoir des lecteurs du monde entier 😉

    Répondre
  3. Avatar de Wolfer Arnaud
    Wolfer Arnaud

    Bonjour, d’abord j’aimerais dire un grand bravo pour toutes astuces que vous donnez sur votre blog et certains forums.

    Le script exif complet m’a toujours intéressé, mais il ne veut pas fonctionner sur mon CS2, l’installation est bonne, et la mise en œuvre aussi, mais au milieu de l’exécution je reçois un message d’erreur:

    "undefined is not an object" ou "Required value is missing"

    En regardant dans le debugger "ExtendScript Toolkit" il m’indique que le problème survient à la ligne "// Contenu du texte", il ne doit pas être en mesure d’accéder ou de trouver les exifs. J’utilise pourtant des jpg provenant directement de mon boîtier (350D) et "intact" pour ne pas les perdre.

    Je suis conscient que ce script date d’un petit bout de temps, c’est simplement pour le signaler, si cela peut aider quelqu’un. Un grand merci encore pour toutes les astuces.

    Répondre
  4. Avatar de Cédric Girard
    Cédric Girard

    Bonjour Arnaud

    Je pense qu’il s’agit d’une valeur non valide de texte. Avez-vous bien téléchargé la version CS2 ?

    J’avais personnellement essayé sur les deux versions (par contre j’avoue ne pas l’avoir fait sur des JPEG directs boîtier…)

    Répondre
  5. Avatar de RGIX
    RGIX

    Super ces scripts !
    Je suis comme Yeal, je n’y connais rien en programmation alors je te dis aussi : MERCI.

    Ceci dit, quel script as-tu utilisé pour la photo du petit oiseau où le modèle de l’APN est sur la même ligne que les autres infos ?

    Est-ce que c’est personnalisable ? La police, la couleur ?

    Merci

    Répondre
  6. Avatar de Cédric Girard
    Cédric Girard

    Ah là c’est un script personnalisé ; tout est personnalisable évidemment puisqu’il vous faut construire votre script de A à Z : cet article vous donne les outils pour ça 😉

    (dans un élan de bonté, je verrai prochainement, quand j’aurai 5mn, pour vous proposer un truc tout fait…)

    Répondre
  7. Avatar de RGIX
    RGIX

    Merci de ta réponse !

    Par contre, j’aurais voulu centrer le texte en bas mais juste à 2 ou 3 pixels du bas.

    Peux-tu m’aider ?

    merci

    Répondre
  8. Avatar de RGIX
    RGIX

    Bon bah finalement j’ai trouvé tout seul en tatonnant !

    Donc laisse tomber mon message précédent 😉

    Répondre
  9. Avatar de Cédric Girard
    Cédric Girard

    Yep

    Quand tu crées ton script :
    – te placer sur ton calque texte
    – CTRL+A pour tout sélectionner (ndlr : l’image)
    – menu Calque / Aligner / centrer (horizontal)
    – menu Sélection / Contracter (mettre "3 pixels")
    – menu Calque / Aligner / Bas
    – CTRL + D (désélectionner)

    Et voilà 😉

    Répondre
  10. Avatar de Cédric Girard
    Cédric Girard

    Ah, double post, pas grave !

    Répondre
  11. Avatar de RGIX
    RGIX

    loul !

    Merci quand même pour ta réponse 😉

    Répondre
  12. Avatar de fx
    fx

    Salut Cédric,

    Merci pour ce tuto, il m’a bien servi, par contre je suis tombé à un moment sur quelque chose de bien étrange avec CS3.

    Sans que je sache pourquoi il s’est mis à mettre les formats décimaux en xx,xx et non plus xx.xx résultat des courses, l’explode_array ne fonctionnait plus bien et j’avais par exemple la focale qui était tout le temps de 0 et la correction d’exposition toujours activée, ce qui est assez génant. J’ai relancé CS3 et le problème a disparu. Tu ne saurais pas ce qui a pu se passer ?

    Merci encore pour ton tuto en tout cas.

    Répondre
  13. Avatar de Cédric Girard
    Cédric Girard

    Aucune idée !!!

    Il arrive que CS3 fasse des choses peu orthodoxe, le mieux est effectivement de le redémarrer (c’est valable par exemple pour la gestion de la mémoire quand on traite un grand nombre d’images à la suite…)

    Répondre
  14. Avatar de Drizzt2511
    Drizzt2511

    Je suis tombé sur ton site grace à eos numerique et franchement c’est super. Je ne suis pas un expert en programmation javascript et tes scripts aident beaucoup.

    Eventuellement une piste d’amélioration serait de pouvoir choisir l’alignement et le cadre du texte. Oui c’est faisable avec l’enregistrement des scripts de toshop 😀

    Répondre
  15. Avatar de Bernita
    Bernita

    (dans un élan de bonté, je verrai prochainement, quand j’aurai 5 mn, pour vous proposer un truc tout fait…).
    J’espère que ce moment de bonté viendra, car étant nul dans l’écriture de ces scripts, ce serai super d’avoir la même chose que les photos ci-dessus avec un seul script. Cela dit, y a-t-il un moyen de récupérer les informations dans les propriétés du fichier jpg (titre, commentaires, etc.) ? et peut-on appliquer tes scripts sur un répertoire complet ? En tout cas, un grand MERCI à toi, Cédric, pour tout ce que tu fais. C’est super.

    Répondre
  16. Avatar de Cédric Girard
    Cédric Girard

    On peut effectivement appliquer un script sur un répertoire complet (recherches "processeur d’image" sur le blog, tu trouveras un article qui explique comment faire !)

    Une fois que le script fonctionne sur une image, il fonctionne sur 10, sur 100 ou sur 1000. Pour les infos du fichier JPEG, si elles correspondent aux IPTC, oui. Si ce sont des infos "propriétaires" (genre de celles que l’on peut écrire sous Windows XP) alors non…

    En ce moment je n’ai pas trop le temps, mais ça va venir !

    Répondre
  17. Avatar de Bernita
    Bernita

    Merci pour ces précisions, Cédric. J’ai trouvé aussi moyen de lancer des traitements en lot avec les scripts ATN, qui, en mode enregistrement, peuvent inclure sans problème des scripts JSX. A bientôt.

    Répondre
  18. Avatar de Vincent
    Vincent

    Bonjour,
    Le code marche bien sous CS3 (mais pas les archives zip à télécharger), j’ai créé le script manuellement.
    Je voudrais maintenant récupérer les "géotag", comment connait-on les codes des champs exif?
    Merci
    Vincent

    Répondre
  19. Avatar de Cédric Girard
    Cédric Girard

    Ouuuuuhhh les géotags ???

    Là je ne sais pas 😉

    Pour le ZIP, je viens de réessayer, ça fonctionne ?…

    Répondre
  20. Avatar de Vincent
    Vincent

    Merci Cedric,

    Je n’ai pas encore essayé les zip… par contre, j’ai fini par trouver l’emplacement des géotag, enfin pour moi du moins. Bien entendu il faut avoir renseigné ces paramètres ou pris la photo avec un appareil muni d’un GPS (moi, j’ai pris mes photos avec un téléphone mobile SONYERICSSON C702 équipé d’un GPS).

    Apres un long surf, un site japonnais a fini par me mettre sur la voie et quelques tatonnements m’ont permis de trouver!
    Donc il s’agit des variables 1, 2, 3 et 4 et le bout de code concerné devient alors:

    var LAT = getArrayString(exifArray, "2")
    var LATR = getArrayString(exifArray, "1")
    var LONG = getArrayString(exifArray, "4")
    var LONGR = getArrayString(exifArray, "3")
    oTextItem.contents = LAT + LATR + "\u000D" + LONG + LONGR // Contenu du texte

    Voilà, il n’y a plus qu’à mettre en forme tout ça mais on a récupéré les infos!

    Répondre
  21. Avatar de Cédric Girard
    Cédric Girard

    Excellent !

    Merci pour l’information, si cela peut servir effectivement aux chanceux qui utilisent un GPS 😉

    (je pense que ce type d’information est normalisé)

    Répondre
  22. Avatar de bernardbvo
    bernardbvo

    Bonjour Cedric et félicitation pour ton site formidable.

    Je n’arrive pas à faire marcher ton script sous cs3. le fichier une fois téléchargé est illisible même sous notepad en rajoutant l’extension .jsx.

    Je dois faire certainement une erreur, mais même sous CS3 en faisant fichier script et parcourir,si le fichier n’est pas renommé en jsx, je ne peux le charger.

    si le fichier est renommé en Jsx, alors erreurs ….

    peux tu me dire ou j’ai tout faux ?

    Merci par avance

    Répondre
  23. Avatar de OlivierG
    OlivierG

    Bonjour,
    Tout d’abord merci pour les tutoriels excellents qui composent ce site.

    J’ai un problème lors de l’utilisation du script Exif pour CS2 (j’ai la version Anglaise). Quelques secondes après le lancement du script, j’obtiens le message d’erreur suivant: " Une erreur est survenue : undefined is not an object "
    J’ai fait plusieurs tentatives sur diverses images, rien n’y a fait…
    Merci d’avance pour ton aide

    Répondre
  24. Avatar de jul
    jul

    Cédric,

    Merci pour ce tutoriel, par contre j’ai de gros soucis avec les script JSX.
    En effet lorsque je veux insérer mes exifs, ça me les insère bien, mais en police Myriad Pro et taille de 530 px (!!).
    J’ai édité le script, tout semble bon (century gothic 14)
    Si tu as une idée…

    Répondre
  25. Avatar de Pinpon
    Pinpon

    Salut Cédric,
    Merci pour tes scripts. J’ai cependant un soucis sous cs3 (je te dis tout de suite que j’ai downloader les scripts cs3), lorsque j’applique un script exif, la vitesse se met sous cette forme : 0.6ème. Comment faire pour la formater correctement ?
    Merci pour ton aide.

    Répondre
  26. Avatar de JeanClic
    JeanClic

    Bonjour Cédric,
    Merci beaucoup pour tes scripts. Je les ai adaptés à mes besoins et ça fonctionne super bien.
    Il y a une indication que je n’arrive pas à trouver, c’est l’objectif utilisé. Par ex: 18-200 (foc min/max). Une focale de 105, peut ètre donnée par plusieurs objectifs, donc, j’aimerais savoir lequel à été utilisé.
    J’utilise : Nikon D300, Photoshop CS3, MAC OS 10.4.11
    Si tu peux m’aider, merci encore.
    Je te suis déjà très reconnaissant pour ce que tu as fait !
    Cordialement.
    Jean-Claude alias JeanClic

    Répondre
  27. Avatar de patsasquash
    patsasquash

    Est-ce que tes scripts peuvent fonctionner sur photshop cs4 ???
    merci d’avance

    Répondre
  28. Avatar de Cédric Girard
    Cédric Girard

    Bonjour

    Aucune idée ! Je ne l’ai pas encore (achat prévu d’ici cet été)

    Pour JeanClic, avec Photoshop il n’y a pas moyen à ma connaissance de retrouver le modèle de l’objectif utilisé, car cette information est généralement stockée dans un champs "propriétaire" à chaque marque… Non lisible par l’API Photoshop.

    Répondre
  29. Avatar de JeanClic
    JeanClic

    Ah ben mince 🙁
    Merci encore.
    cdt
    jc

    Répondre
  30. Avatar de BarilG
    BarilG

    Salut et merci pour ce script.

    Juste un petit détail de puriste (en typographie, pas en photo). L’abréviation de « ième » (adjectif numéral ordinal) comme dans centième n’est pas « ème » en français mais « e », placé normalement en exposant (ou supérieur ou superscript). Ça donnerait quelque chose comme 1/200e et non 1/200ème.

    Je reconnais volontiers que la typographie c’est souvent du br***age de mouches, mais bon, ça coute pas plus cher d’écrire juste 😉

    Répondre
  31. Avatar de Bdx-77
    Bdx-77

    Bonjour,

    Merci pour ton script, j’adore !
    J’ai modifié quelques trucs, et j’ai besoin d’aide: Connais-tu le script pour ajouter un calque avec un carré aux bords arrondis etc… dans le but de faire un peu comme toi… sur tes images de démonstration !

    Merci beaucoup !

    Répondre
  32. Avatar de tvertain
    tvertain

    Super script, malheureusement ils n’ont pas l’air de fonctionner sur cs4 ?
    As tu l’intention de les adapter au cs4 ?
    Par avance merci.

    Répondre
  33. Avatar de Janusz
    Janusz

    Merci beaucoup pour ce billet qui m’a été très utile.
    Ma signature personnalisé est maintenant opérationnelle.

    Et pendant que j’y pense, merci aussi pour la qualité de ce site.

    Répondre
  34. Avatar de Cédric Girard
    Cédric Girard

    Bonjour

    Je n’ai pas CS4 donc ce n’est pas encore prévu pour le moment (la MAJ est loin d’être gratuite 🙁 )

    Répondre
  35. Avatar de Janusz
    Janusz

    J’ai testé plusieurs scripts sur CS4, ça fonctionne parfaitement.

    Répondre
  36. Avatar de JacquesM
    JacquesM

    Bonjour, Je travail avec Mac OS et Photoshop CS3. Les scripts pour insérer les EXIF fonctionnent très bien. Peut-on modifier les scripts pour extraire une autre donnée IPTC et l’appliquer à tout un dossier Example; nom du sujet.Merci d’avance.

    Répondre
  37. Avatar de Cédric Girard
    Cédric Girard

    Bonjour Jacques

    Vous voudriez en fait modifier les données IPTC ? Vous pouvez faire ça en quelques clics avec Bridge 😉

    Sinon si c’est pour insérer automatiquement sur l’image une info IPTC autre que celles citées ici, tout dépendra si l’on peut y accéder, mais sinon c’est possible

    Répondre
  38. Avatar de JacquesM
    JacquesM

    Bonjour Cédric, Votre deuxième paragraphe exprime très clairement ce que je veux faire.En plus, j’aimerais imprimer cet info sur les photos de tout un dossier. Je ne suis pas informaticien. J’aurais besoin d’aide. Merci

    Répondre
  39. Avatar de Manu
    Manu

    Bonjour,
    Ton site est super et tes explications sur photoshop excellente …… La problème c’est que j’aimerais insérer mes exifs sur mes photos du genre de ta première photo, mais j’ai la version CS5 et ton tuto ne fonctionne pas avec ….j’ai beau chercher sur le net je trouve pas d’explication la dessus …..As tu quelques tuyaux …..
    Merci

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Bonjour Manu
      Effectivement, CS4 apportait déjà (apparemment) des différences, et sur CS5 je ne sais pas, je n’ai pas encore regardé.
      Il semble qu’il y ait des différences sur la manière d’appeler les scripts JSX (mais la syntaxe doit en principe rester la même, mon script pour la rotation automatique fonctionne au niveau du code) : je vais regarder.

      Répondre
  40. Avatar de Manu
    Manu

    Bonjour Cédric ,
    Je viens aux nouvelles ……voir si tu as eu le temps de regarder un peu …..j’essaie toujours de comprendre et de rechercher sur google des explications mais bon à priori il n’y a que toi qui réalise des tutos de ce genre ……
    Bonne soirée
    Merci d’avance !!

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Bonjour Manu
      Je n’ai pas encore eu le temps de m’y pencher… Mais je le ferai (de toute façon je vais bientôt en avoir besoin !)
      Dès que c’est fait je crée un nouvel article, ou à défaut je mets celui-ci à jour !

      Répondre
  41. Avatar de taz
    taz

    Chez moi ca fonctionne avec CS5 mais en partant d’un ensemble de script appelé EBS j’ai juste modifié la recherche des exifs de joe colson par celle de Cedric et ca fonctionne nickel 😀
    Congratulations !!!

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Bonjour Taz
      Vais aller voir ce script, ça peut être intéressant !

      Répondre
  42. Avatar de Hiro
    Hiro

    Bonjour – et bravo pour le site + les scripts !
    Voilà, je cherche depuis longtemps un .js (pour Photoshop CS tt court donc 8) qui commencerait par redimensionner un logo IMAGE (JPEG ou autre, et non texte) à un certain pourcentage de la largeur en pixels de chaque image à marquer de ce logo., par exemple 15% – ou mieux : pourcentage modifiable, bien sûr.
    Il faudrait évidemment que ce .js mesure aussi et avant tout la résolution de chaque image à marquer. Il s’agirait donc d’un script qui colle une petite image (pré-existante) – d’ailleurs avec emplacement réglable (ou commande JS « Align to selection » intégrée, car suffisante, mais paramétrable aussi) – sur chacune des images d’une série… toutes ou beaucoup d’entre elles étant de tailles et de résolutions différentes.
    « Bref », un script capable de coller une image en la redimensionnant, afin que sa taille relative, donc par rapport à l’image réceptrice, soit toujours la même. Et voilà… je ne sais pas programmer ça, ni même modifier les .js que je trouve, afin qu’ils collent un logo. IMAGE, au lieu d’un ou quelques mots en texte…
    Si quelqu’un a un lien, où trouver ça, ou si quelqu’un sait le programmer (facile, pour qui connaît le JavaScript, je suppose), je pense que ça devrait intéresser pas mal de gens – et non moi uniquement.
    Merci. Cordialement.
    Hiro
    .

    Répondre
  43. Avatar de Alain GB
    Alain GB

    Bonjour
    Je déterre le sujet pour signaler que les scripts fonctionnent également sur photoshop cs6.
    Si ça peut aider quelqu’un…
    Alain

    Répondre
  44. Avatar de Cfranssen
    Cfranssen

    bonjour, comment trouvez vous les marqueurs ?
    j’ai un gps sur l’appareil et les coordonnées gsp sont dans les exifs, J’aimerais les afficher aussi.
    merci

    Répondre
  45. Avatar de Dani
    Dani

    Le logiciel Copyright2image (http://www.copyright01.com/copyright2image) permet d’ajouter facilement un copyright à vos Images.

    Répondre
  46. Avatar de bettens
    bettens

    Bonjour et merci pour le script.
    Petite question, je souhaiterai ajouter une icone en face de chaque ligne par exemple
    icone iso : valeur iso
    icone focale : valeur de focale
    etc.

    Répondre
    1. Avatar de Cédric GIRARD
      Cédric GIRARD

      Bonjour
      Il suffit d’insérer dans votre « script » une ligne permettant d’importer sans lier une image ; je n’ai pas le code en tête mais c’est tout-à-fait possible 🙂

      Répondre

Laisser un commentaire

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

Retour en haut