Cahier des charges :
- mettre un liseré blanc de 2 pixels tout autour d'une photo quelles que soient ses dimensions,
- mettre un passe-partout gris foncé tout autour. Sa largeur sera égale à 10% de la largeur de la photo. Ex : si la photo fait 500 x 1000 pixels, le passe-partout fera 550 x 1100 pixels.
- traiter de cette façon toutes les photos du dossier ../_tuto en les sauvegardant dans le sous-dossier ../_Tuto/Sauvegarde/ au format Jpeg, dans la meilleure qualité possible en conservant son profil colorimétrique.
Copier le code ci-dessous et le coller dans ExtendScript Toolkit.
- Code: Tout sélectionner
#target photoshop
app.bringToFront();
var reglesUtilisateur = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS; // 5
// Déclaration des variables
var docRef; // 8
var docName;
var largeurPhoto; // 10
var hauteurPhoto;
var largeurLisere;
var hauteurLisere;
var largeurCadre;
var hauteurCadre; // 15
var couleurLisere = new SolidColor;
couleurLisere.rgb.hexValue = "FFFFFF";
var couleurCadre = new SolidColor;
couleurCadre.rgb.hexValue = "454545";
var dossier = Folder.selectDialog("Sélectionnez le dossier _Tuto : "); // 20
var sousDossier = Folder(dossier + "/sauvegarde");
if (!sousDossier.exists) sousDossier.create();
var liste = dossier.getFiles(/\.(jpg|jpeg|tif|psd|png|)$/i);
for (var i= 0;i<liste.length;i++) // 25
{
docRef = open(liste[i]);
docName = docRef.name;
docName = docName.substring( 0, docName.indexOf('.') );
largeurPhoto = docRef.width; // 30
hauteurPhoto = docRef.height;
largeurLisere = largeurPhoto + 4;
hauteurLisere = hauteurPhoto + 4;
app.backgroundColor = couleurLisere;
docRef.resizeCanvas(largeurLisere, hauteurLisere); // 35
largeurCadre = largeurPhoto * 1.1;
hauteurCadre = hauteurPhoto * 1.1;
app.backgroundColor = couleurCadre;
docRef.resizeCanvas(largeurCadre, hauteurCadre);
jpegOptions = new JPEGSaveOptions(); // 40
jpegOptions.embedColorProfile = true;
jpegOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpegOptions.matte = MatteType.NONE;
jpegOptions.quality = 12; // Preserve la meilleure qualité possible
app.activeDocument.saveAs(File(sousDossier+"/"+docName+".jpg"), jpegOptions, true,Extension.LOWERCASE); // 45
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
app.preferences.rulerUnits = reglesUtilisateur;
Les lignes de codes sont numérotées de 5 en 5. Quelques explications :
- lignes 8 à 15 : déclaration des variables dont on va avoir besoin, sans affectation de valeurs
- lignes 16 à 19 : on fixe la valeur hexadécimale de la couleur du liseré (blanc) et du passe-partout (gris foncé)
- ligne 21-22 : on crée un sous-dossier pour sauvegarder les photos traitées. Notez la façon de traiter une condition. if (!sousDossier.exists) et le point d'exclamation. La condition est entre parenthèses et le point d'exclamation a une valeur négative. Ici, il faut lire : si le sous-dossier n'existe pas.
- ligne 29 : on ne garde que le nom du fichier. Peu importe l'extension puisqu'on va tout sauvegarder en Jpeg
- lignes 34 et 35, on met un liseré de 2 pixels autour de la photo. Comme il faut qu'il ait une largeur de 2 pixels, tout se passe comme si on mettait un calque blanc en arrière-plan supérieur de 4 pixels aux dimensions de la photo.
lignes 36-37 : on fait la même chose pour le passe partout. Ce coef 1.1 correspond à 110% par rapport aux dimensions de la photo.
- lignes 40 à 44 : on fixe les options de sauvegarde du format Jpeg. Chaque format (Tif, Psd, Jpeg, Png, etc.) possède ses propres options. A la ligne 41, par exemple, on encapsule dans la photo son profil colorimétrique initial. A la ligne 44, on choisit la meilleure qualité possible pour ne perdre aucune information.
- ligne 46, on referme les documents originaux, sans les modifier.
-