Bonjour à tous,

j'ai réglé pour ma part le problème.

En fait les exifs issus des fichiers Jpg que ce soit brut de capteur, réalisés avec DPP, Camera Raw (CS3), ou encore DXO ne sont pas placés aux mêmes endroits. Ce qui m'a ammené à créer 4 fichiers jsx différents, un pour chaque cas.

J'ai donc repris le fichier de base sous le notepad windows de ? (désolé, mais vu la longueur du post, je ne m'en souviens plus) puis je l'ai renommé en .jsx pour chacun des programmes que j'utilise.

Exifs Jpg sortis du boitier (PDV en JPG)

#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 20D"; // Changer le modele si besoin...

// Vitesse

var e = 16;
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 = 64; // 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.PLACEBE FORE);

// 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 );


Pour DPP, Caméra Raw CS3 et DXO, je suis prêt à vous les fournir si vous êtes interressés, mais je ne sais pas uploader les fichiers.

En espérant vous avoir rendu service...

Bernard