beocien, il te serait compliqué d'avoir la date en version française plutôt qu'en américain ? j'ai pas fais attention a l'heure aussi si elle est en 24H...
Si jamais tu trouvais un moment pour regarder ça...
Merci d'avance :D
Version imprimable
beocien, il te serait compliqué d'avoir la date en version française plutôt qu'en américain ? j'ai pas fais attention a l'heure aussi si elle est en 24H...
Si jamais tu trouvais un moment pour regarder ça...
Merci d'avance :D
Ma version 2 marche sous CS3 Windows.
Chez moi les tag EXIF de CS2 étaient mal gérés ( même après une réinstallation ), en CS3 ils remarchent correctement. Je n'ai jamais eut l'occasion d'essayer la version 1 ou 2 sous CS tout cours. De manière générale CS2 & CS3 malmènent les tags EXIF de vos photos, il n'en reste plus grand chose après un passage dans Photoshop, certains TAGs sont covertis en données RDF, mais de nombreux sont purement et simplement perdus.
Ca marche du tonnere - Merci pour ce partage
Cordialement,
Paul
http://guillaume.db.free.fr/eos/IMG_6361.jpg
Voila une version "simple" qui tourne sur mac... si jamais ca vous tente le code est la (merci a tous ceux a qui j'ai piqué des bouts de code, je ne sais plus bien a qui appartient quoi :D) :
Code:#target photoshop
app.bringToFront();
var thisDoc=app.activeDocument;
// Pas de questions pendant le script
displayDialogs = DialogModes.NO;
// On sauvegarde et met en place les unitÈs de mesure
var defaultRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
var defaultTypeUnits = preferences.typeUnits;
preferences.typeUnits = TypeUnits.PIXELS;
// Quelques variables fort utiles pour la suite
var AD = activeDocument;
var black = new SolidColor();
black.rgb.red = black.rgb.green = black.rgb.blue = 0;
var white = new SolidColor();
white.rgb.red = white.rgb.green = white.rgb.blue = 255;
backgroundColor = black;
// Récupération des Exifs
var exif_info="Canon EOS 400D"; // Changer le modele si besoin...
// Vitesse
var e = 9;
try {
exif_info = exif_info + " - " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
// Ouverture
var e = 10;
try {
exif_info = exif_info + " - " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
// Isos
var e = 12;
try {
exif_info = exif_info + " - " + thisDoc.info.exif[e][1] + " iso"; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
// Distance focale
var e = 21;
try {
exif_info = exif_info + " - " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
// Reglage des distances
var Off7 = 6; // Distance entre le texte et le cadre
var Undent = 4; // Distance entre le cadre et le bord de la photo
var TxtSize = 16; // Taille du texte
// On crÈe un nouveau calque texte
var infoLayer = AD.artLayers.add();
infoLayer.kind = LayerKind.TEXT;
infoLayer.name = "Exif WM - Texte"
var TI = infoLayer.textItem;
TI.font = "Arial";
TI.size = TxtSize;
TI.color = white;
TI.contents = exif_info
TI.kind = TextType.PARAGRAPHTEXT;
TI.nobreak = true;
// On rÈcupËre la taille du texte
var TextWidth = (infoLayer.bounds[2]-infoLayer.bounds[0]);
var TextHeight = (infoLayer.bounds[3]-infoLayer.bounds[1]);
var TextLeft = AD.width-(TextWidth + Off7 * 2 + Undent);
var TextTop = AD.height-(TextHeight + Off7 * 2 + Undent);
// Et on le dÈplace en bas ‡ gauche, position calculÈes avec les distances mises en place plus haut
TI.position = [TextLeft,TextTop];
// On crÈe un nouveau calque, pour y dessiner notre cadre
var CadreLayer = AD.artLayers.add();
CadreLayer.name = "Exif WM - Cadre";
var CadreRight = TextLeft + TextWidth + Off7;
var CadreBottom = TextTop + TextHeight + Off7;
// cadre dont la taille et la position sont calculÈes selon celles du texte
var selectionBounds = [[TextLeft-Off7, TextTop-Off7], [CadreRight, TextTop-Off7], [CadreRight, CadreBottom], [TextLeft-Off7, CadreBottom]];
// On crÈe une sÈlection (le 2 correspond a l'arrondi des angles...)
AD.selection.select(selectionBounds,SelectionType.REPLACE,2,false);
// On la remplis d'un aplat de noir visible (65 correspond a l'opacité)
AD.selection.fill(black,ColorBlendMode.VIVIDLIGHT,65);
// On place le texte au dessus du cadre ( pour qu'il ne soit pas affectÈ par l'aplat noir )
infoLayer.move(CadreLayer,ElementPlacement.PLACEBEFORE);
// On lie les deux calques ( ils bougeront ensemble )
CadreLayer.link(infoLayer);
// on remet en place les unitÈs de mesure sauvegardÈes
preferences.rulerUnits = defaultRulerUnits;
preferences.typeUnits = defaultTypeUnits;
// applatir les calques
AD.flatten();
//DESELECTIONNER ( rajout du a la suppression du contour blanc )
var id2111 = charIDToTypeID( "setd" );
var desc232 = new ActionDescriptor();
var id2112 = charIDToTypeID( "null" );
var ref108 = new ActionReference();
var id2113 = charIDToTypeID( "Chnl" );
var id2114 = charIDToTypeID( "fsel" );
ref108.putProperty( id2113, id2114 );
desc232.putReference( id2112, ref108 );
var id2115 = charIDToTypeID( "T " );
var id2116 = charIDToTypeID( "Ordn" );
var id2117 = charIDToTypeID( "None" );
desc232.putEnumerated( id2115, id2116, id2117 );
executeAction( id2111, desc232, DialogModes.NO );
Mac64 j etais en train de preparer un script dans ces eaux la quand j ai vu le tien ! :clap_1:
Pour ceux qui sont interesses par les jsx je viens de refaire un tuto ( hum ) pour utiliser l outil ScriptingListener.log - disponible sur ce lien : http://legiontcek.free.fr/FICHIERS/S...enerJS.log.doc
:blink:
Petite précision, pour que le script marche, du moins chez moi, il faut que l'image soit déja passée par photoshop, et donc qu'on ai déja enregistré cette image avec photoshop (qui va modifier les exifs...)
Sinon on obtient : Canon EOS 400D - f/8 - Manuel - 0221 iso - 0100
Au lieu de :Canon EOS 400D - 1/640 sec - f/8 - 200 iso - 214.0 mm
... A la limite on peut ajouter pour ceux qui veulent une instruction de sauvegarde avant de lancer la recherche d'exifs...
Petite question car certains doivent avoir la réponse...
C'est plus rapide a l'exécution d'avoir tout dans un JSX ou ca ne change rien si on utilise la palette de scripts et qu'on mélange, des actions enregistrées avec le bouton "REC" et l'utilisation de fichiers JSX ?
Par exemple pour mon cadre j'ai :
Modif de la taille de l'image en 800px de large
Modif taille de la zone de travail pour ajouter le cadre
...
Script JSX pour les exifs
...
Applatir
Il vaudrait mieux que je mette tout dans un JSX ? ou j'aurai pas de gain de temps a l'éxécution? (j'espere avoir été compréhensible :D)
Mac64 :clap_1: :clap_1: :clap_1:
super :thumbup: ca marche chez moi
mille merci
bon je vais essayer de trouver enfin si j'y arrive pour avoir l'obectif et l'appreil en automatique
encore merci :thumbup:
Exact... je suis en train de faire des tests... en enregistrant avant de lancer le script c'est "un peu plus long" a s'exécuter, mais ca fonctionne parfaitement après...
Photoshop met en fait un joli bronx dans les exifs et c'est bien domage car on perd beaucoup d'informations, comme l'objectif utilisé, le photographe...
bizare j'ai des resulat diferent suivant les photos ??
encore merci
http://homepage.mac.com/aozer/EV/exifviewer.tar.gz
Télécharge ce petit utilitaire bien pratique, je l'ai dans mon dock et ça me permet par exemple quand je suis sur un site, de dropper une image dessus et d'en voir les exifs (si les infos ont pas été détruites lors d'un enregistrement...)
Tu vois apparaître à la 7ieme ligne si ton fichier a été enregistré avec photoshop : Camera Software: Adobe Photoshop CS3 Macintosh
Si tu n'as pas cette ligne, le fichier n'étant jamais passé par photoshop, le script ne récupérera pas les bonnes informations...
Si le fichier n'est jamais passé par toshop, il suffit de l'ouvrir avec toshop et enregistrer, (passage par la zone Qualité JPG...) et après c'est bon le script tournera convenablement
Dans ma palette de script j'ai créé une ligne spécifique pour ce problème :
-Tu prend une image au pif, tu l'ouvre avec photoshop
-tu la modifie.
-tu vas dans la palette de script tu appuis sur Rec
-Tu fais enregistrer, il te demande la qualité tu laisse a 12 (en général...car cette valeur sera utilisée pour tous tes prochains fichiers)
-tu fais stop
Tu te retrouve donc avec une action "enregistrer" dans la palette de script que tu n'as qu'a exécuter avant de lancer le script
Ca me donne ça par exemple :
http://guillaume.db.free.fr/eos/script1.jpg
Tu y vois l'action enregistrer en tout début de script pour éviter les mauvaises infos
J'espere que c'est assez compréhensible comme explications :s
Bonjour,
Chez moi, j'ai toujours des petites fenêtres d'erreur qui sortent de temps à autres si bien que je vais déclarer forfait....
Merci quand même pour le travail fourni
Alors c'est toujours pour le photoshop CS de base, sous PC/Win XP.
Faudrait alors ptêt d'abord que je teste la dernière version ! Parce que là, en complet néophyte, quand je vois ces listes de codes, à moi la peur !
Qui l'a ?
Exactement... La programmation ça me gonfle aussi, mais la je suis particulièrement content du résultat qu'on a obtenu !
Photoshop est vraiment un logiciel magique je trouve
Dommage pour la dégradation des exifs qu'il produit mais bon...
Par contre personne ne sait comment , après une réduction de la taille de l'image, avoir un affichage a 100% ?
Quand j'ouvre une image, elle est a 25% vu qu'elle est très grande, mais quand je la redimensionne , elle est toujours a 25% , du coup c'est minuscule sur l'écran alors qu'elle pourrait se mettre a 100%...
Pas moyen d'avoir ça automatiquement ?
...
Alors la y a tout qui m....e !
Je poste un message et rien, donc je recommence et je me retrouver avec une série !
Si je chope Mr Bill Gates, va avoir à faire à moi !
Effectivement, c'est des .js
Actuellement, avec "EXIF_Final_800 (3).js", il ne se passe rien.
La dernière fois, j'avais une fenêtre qui ne parlait pas d'erreur de ligne mais dont je ne me souviens plus les termes. Toutefois le résultat a été la fermeture, à plusieurs reprises, de Photoshop...
[QUOTE=Mac64;640649]http://guillaume.db.free.fr/eos/IMG_6361.jpg/QUOTE]
Si je peux me permettre, je trouve cette version très belle, avec le dégradé du cadre des exifs et la transparence du noir !
Bravo
Merci
Pour ceux qui n'auraient pas vu j'ai mis en commentaire sur les lignes les paramètres a changer :
// On crée une sélection (le 2 correspond a l'arrondi des angles...) ou plutôt le dégradé en fait...
AD.selection.select(selectionBounds,SelectionType. REPLACE,2,false);
// On la remplis d'un aplat de noir visible (65 correspond a l'opacité)
AD.selection.fill(black,ColorBlendMode.VIVIDLIGHT,65);
A modifier à sa guise de meme que la police...(j'ai mis Arial pour la version diffusée mais j'utilise Myriad Pro Semibold... que tout le monde n'a pas forcément :)
Bref chacun peut vraiment faire ce qu'il veut à partir de ce fichier
On attend vos créations ;)
Mouaip, sauf que pour moi, le chinois c'est de la rigolade à côté :-))
En fait je suis très exigeant, il me faut du produit fini....
Pas que je fasse exprès, mais je suis assez limité dans le domaine. Placer le fichier au bon endroit ou enlever le x de .jsx, je m'en sors. Mais alors écrire ou modifier des lignes de codes....???
Essaye avec CS3... je pense que ça ira mieux
Les modifications que je viens d'indiquer sont très simple tu verras, tu testes une valeur, tu vois le résultat, bien / pas bien, tu re-bidouilles un peu et hop t'obtiens ce que tu veux et t'es content.
Il faut pas se dire "oula c'est du code je vais tout casser"... ça risque rien puis on se rend compte que c'est vraiment pas sorcier après (je parle pas du gros du script qui récupère les données, les concatene et tout...ça c'est un peu plus complexe :) )
Ok, je vais faire des tests...
Merci du coup de main
Ouai y'a 2 ou 3 petits trucs chiants comme ça...
Dans le meme genre, j'aimerai utiliser "l'affichage maximisé" ou on se retrouve donc avec un fond gris autour de l'image (la fenetre de l'image prend tout l'espace disponible "entre les palettes" , ce qui est bien pratique pour faire des rotations par exemple (via "Transformer") ou autre opération ou on a besoin d'utiliser des poignées en bordure de fenêtre...(pour les sélections au lasso en bordure de document idem)
Mon souci avec cet affichage est qu'il masque alors les boutons de fermeture de fenêtre ainsi que le titre, alors certes on peut faire Commande W pour fermer la fenêtre mais il y a des situations ou c'est chiant...
Essaies celui la ?:blink:
Code:var savedUnits=app.preferences.rulerUnits;
var thisDoc=app.activeDocument;
app.preferences.rulerUnits=Units.PIXELS;
// EXIF info
var exif_info="";
var e = 6; //Modele
try {
exif_info = " " + exif_info + " " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
var e = 15; //Vitesse
try {
exif_info = " " + exif_info + " " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
var e = 16; //Ouverture
try {
exif_info = " " + exif_info + " " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
var e = 18; //Iso
try {
exif_info = " " + exif_info + " " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
var e = 26; //Distance focale
try {
exif_info = " " + exif_info + " " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
var e = 20; //Date
try {
exif_info = " " + exif_info + " " + thisDoc.info.exif[e][1]; //exif_info + thisDoc.info.exif[e][0] + " = " + thisDoc.info.exif[e][1] + "\r";
}
catch (e) {}
// alert(thisDoc.info.exif);
text_layer=thisDoc.artLayers.add();
text_layer.kind = LayerKind.TEXT;
textColor = new SolidColor;
textColor.rgb.red = 0;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;
text_layer.textItem.color = textColor;
text_layer.textItem.kind=TextType.PARAGRAPHTEXT;
text_layer.textItem.position = Array(thisDoc.width * 0.05, thisDoc.height * 0.05);
text_layer.textItem.size = 18; //a la place de 4
text_layer.textItem.font = "ArialMT";
text_layer.textItem.width = thisDoc.width * 0.8
text_layer.textItem.height = thisDoc.height * 0.8
text_layer.textItem.contents=exif_info;
// restore preferences
app.preferences.rulerUnits=savedUnits;
Bonjour,
Ca donne rien du tout non plus....
Laissez tomber, je pense que je vais chercher CS3
Merci à tous
Je mets de cote merci !:blink:
Pour les nanards de Toshop CS3 sous PC comptez vous ressortir de ce fil que je ne pige plus depuis la 3 eme ligne un script pour ceux comme moi qui savent seulement écrire leur nom dans une case de dialogue ? :D
Merci Buster pour l'éclairage Bordermaker..
Ba tu n'as pas besoin de te faire chier je pense, t'as pas besoin de coder ou autre pour faire ca il suffit d'utiliser la palette de script de photoshop, tu lance l'enregistrement avec REC, tu fais tes manips pour avoir ton nom comme tu le veux sur une photo "cobaye" et quand t'as finis tu fais STOP
La manip est enregistrée étape par étape par toshop, tu peux la réutiliser pour tes autres photos...
Merci Mac..je n'ai pas compris alors de quoi vous parliez depuis le départ et qui avait l'air de ne pas encore exister ??
Je pense que tu fais allusion "au script qui permet de récupérer les exifs"
On avait au début de ce topic pas de script qui fonctionnait correctement avec nos versions de photoshop ou ordinateurs (Pour photoshop CS3 sur Mac par exemple on avait rien...)
Mais ce problème est maintenant résolu grâce à l'aide des différents intervenant de ce topic
Pour ton problème c'est simple, car tu ne changes pas de nom (enfin en théorie) a chaque photo que tu fais, alors que les exifs sont différents pour chaque prise de vue, d'ou la nécessité d'utiliser un peu de code pour que Photoshop puisse nous récupérer ces informations...(et sur la majorité du topic on bataille a trouver comment les récupérer...)
J'espere que l'explication te vas...
Pour ceux qui sont interesses par les jsx
J ai mis des explications sur ScriptListenerJS.log dans ce fichier :
ScriptingListenerJS.log
:blink:
la touche F permet de mettre l'espace de travail en plein écran mais pas la photo.
Ce que l'on souhaite, c'est afficher la photo à 100% (comme avec l'outil loupe) mais cet outil est également inaccessible au cours d'un script. Ou alors il faut insérer un point d'arrêt mais ca complique les manips...:bash:
Merci de tes éclaircissements Mac64 mais j'avais donc bien compris que le but est l'incrustation automatique dans le cadre des exifs d'une photo avec CS3. Est ce bien ça?
Bordermaker le fait mais bon nombre d'utilisateurs de photoshop (PC) aimeraientprofiter d'un tel script dans leur logiciel favoriPhotoshop)..mais peut etre qu'une autre difficulté réside dans le fait que tout dépend du cadre de chacun?
Voilà ce que j'ai compris .. en tout cas ce que j'espere si c'est possible..
Cordialement ;)
Voila on voulait faire ca via Photoshop
Après comme tu dis ca dépend du cadre de chacun mais il suffit juste de changer 2 ou 3 parametres pour l'adapter...
Une version "de base" qui met les exifs dans un petit rectangle noir (voir photo jointe quelques messages plus haut) est dispo, et fonctionne pour tout le monde tel quel...