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