Citation Envoyé par Mac64 Voir le message


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 );
Celui la par exemple...
Après regarde dans tout le topic car il y a différentes versions qui donnent des résultats différents...
Tu met ce code dans un fichier texte avec ton notepad par exemple, tu sauves le fichier, et tu changes l'extention du fichier .TXT en .jsx