|
|
|
|
TUTORIEL OUTILS |
|
|
|
Contrôler Photoshop avec JavaScript |
Les scripts de Photoshop CS2 apportent une puissance de contrôle jamais atteinte à la suite graphique d'Adobe, via des langages accessibles comme JavaScript. Approche pratique avec deux scripts fonctionnels.
(25/04/2006) |
|
Depuis
sa version CS, Photoshop propose de créer non plus des Actions (lire notre
article du 16/12/05), mais des scripts complets, à l'aide de VBScript,
AppleScript ou de JavaScript (lire notre
article du 28/02/06). Les possibilités sont alors décuplées, car le développeur
de script a accès à l'ensemble des méthodes et objets proposés par l'application,
dont certaines fonctionnalités inaccessibles aux actions.
Les avantages à utiliser les scripts plutôt que les actions sont nombreux : travail
des fichiers (ouverture, sauvegarde, renommage...), accès à Illustrator CS2 depuis
Photoshop CS2, accès à un véritable langage de programmation, notamment aux fonctions
conditionnelles ou aux boucles.
Le scripts sont
à placer dans le dossier /Presets/Scripts/ du
dossier d'installation de Photoshop, sous la forme de fichier texte avec l'extension
.jsx (ou .js pour CS). Une fois placé dans ce dossier, il faudra soit redémarrer
l'application pour accéder au script depuis le menu Fichier/Scripts, soit passer
par le navigateur de scripts de ce même menu.
Ajouter du texte
L'intérêt premier des scripts, comme pour les actions, est de pouvoir appliquer
un même traitement à un grand nombre d'images. Nous allons voir tout d'abord un
script qui ajout un texte sur la photo ouverte (comme une notice de copyright).
docRef = app.activeDocument;
app.displayDialogs = DialogModes.NO;
app.preferences.typeUnits = TypeUnits.POINTS;
var textColor = new SolidColor;
textColor.rgb.red = 0;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;
today = new Date();
monCopyright = "(c)" + today.getFullYear() + " JDN Développeurs";
var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.contents = monCopyright;
newTextLayer.textItem.position = Array(1, 1);
newTextLayer.textItem.size = 28;
newTextLayer.textItem.color = textColor;
Ce script fait appel à de nombreux objets et méthodes fondamentaux de Photoshop.
Près de 80 objets sont accessibles à tout moment, parmi lesquels Document,
LayerSet ou encore Selection.
Le document courant est de son côté récupéré via la propriété activeDocument
de l'objet app, qui représente Photoshop lui-même.
Ce même objet permet de travailler avec les composants du logiciel, comme ses
préférences utilisateur ou sa gestion des fenêtres. Nous précisons ici l'unité
de taille des polices, et le fait Photoshop n'affiche pas de fenêtre de dialogue.
Avec SolidColor, on peut définir une couleur utilisée
dans le document. Nous créons ici la couleur de notre texte. Ce dernier sera placé
sur l'image par le biais d'un calque supplémentaire, créé avec la fonction add()
de l'objet artLayers de notre document courant.
artLayers est un objet regroupant les calques
contenant des éléments visuels. Après avoir défini que ce calque graphique était
de type textuel (LayerKind.TEXT), on remplit,
positionne et place notre texte, qui contient une variable JavaScript reprenant
l'année en cours.
Changer la taille de l'image
L'un des traitements courants du webmaster est de modifier la taille d'une image
pour la publier sur Internet. Les photos sont de nos jours pris à des résolutions
assez hautes (par exemple, 2048*1536), qui ne sont pas exploitables telles quelles
sur le Web, particulièrement pour les petites connexions. Le script suivant réduire
la taille de l'image, pour mettre le plus long côté à 800 pixels de long.
app.preferences.rulerUnits = Units.PIXELS;
app.displayDialogs = DialogModes.NO;
docRef = app.activeDocument;
var largeur = docRef.width.value;
var hauteur = docRef.height.value;
var tailleVisee = 800;
if (largeur > hauteur) {
longCote = largeur;
}
else {
longCote = hauteur;
}
var pourcent = (tailleVisee/longCote);
docRef.resizeImage(largeur*pourcent, hauteur*pourcent, 72, ResampleMethod.BICUBIC);
|
Forum |
|
Réagissez
dans les forums de JDN Développeurs
|
On reprend ici certains objets de notre premier script, notamment Document, pour
utiliser ses propriétés de width et de height,
et surtout sa méthode resizeImage(), qui prend
en compte parmi ses arguments les nouvelles hauteur et largeur, la résolution
de l'image finale, et la méthode utilisée pour recalculer l'image (ici, Bicubic).
|
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|