Guide Des Scripts Photoshop CS5
Guide Des Scripts Photoshop CS5
Guide Des Scripts Photoshop CS5
CS5
Adobe, le logo Adobe, Illustrator et Photoshop sont des marques ou des marques déposées d’Adobe Systems Inc. aux
Etats-Unis et/ou dans d’autres pays. Apple et Mac OS sont des marques d’Apple Computer, Inc., déposées aux Etats-Unis
et dans d’autres pays. Microsoft et Windows sont des marques ou des marques déposées de Microsoft Corporation aux
Etats-Unis et dans d’autres pays. JavaScript et toutes les marques liées à Java sont des marques ou des marques
déposées de Sun Microsystems, Inc. aux Etats-Unis et dans d’autres pays. Toutes les autres marques citées sont la
propriété de leurs détenteurs respectifs.
Les informations contenues dans ce guide sont données à titre purement indicatif. Elles peuvent être modifiées sans
préavis et ne constituent pas un engagement de la part d’Adobe Systems Inc. Adobe Systems Inc. ne peut être tenu pour
responsable des erreurs ou des inexactitudes apparaissant dans le présent document. Le logiciel décrit dans ce
document est fourni sous licence et ne peut être utilisé ou copié que conformément à la licence.
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Conventions utilisées dans ce guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Scripts Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Affichage des objets, commandes et méthodes Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Affichage du dictionnaire AppleScript de Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Affichage de la bibliothèque de types de Photoshop (VBS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Ciblage et référencement de l’objet Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Création d’objets dans un script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Définition de l’objet actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Définition du document actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3
Table des matières 4
4 Gestionnaire de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Module externe Ecouteur de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Installation de l’écouteur de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Objets du gestionnaire de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Enregistrement d’un script à l’aide de l’écouteur de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Utilisation du gestionnaire de scripts à partir d’un script JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Utilisation du gestionnaire de scripts à partir d’un script VBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Exécution de code du gestionnaire de scripts JavaScript à partir d’un script VBScript . . . . . . . . . . 79
Exécution de code du gestionnaire de scripts JavaScript à partir d’un script AppleScript . . . . . . . 80
Utilisation de l’écouteur de scripts pour rechercher des ID d’événements et de classes . . . . . . . . 81
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1 Introduction
A propos de ce manuel
Ce manuel propose une introduction aux scripts pour Adobe® Photoshop® CS5 sous Mac OS® et Windows®.
Le chapitre 2 présente brièvement les scripts, notamment comment les exécuter, ainsi que le modèle
d’objet de Photoshop.
Le chapitre 3 expose les éléments et objets spécifiques à Photoshop et décrit des techniques de script
avancées pour l’application Photoshop. Des exemples de code sont fournis dans trois langages :
➤ AppleScript
➤ VBScript
➤ JavaScriptTM
REMARQUE : des informations de référence distinctes pour les scripts Photoshop sont fournies pour chacun
des trois langages dans les Guide de référence pour les scripts livrés avec cette installation, ou via les
explorateurs d’objets disponibles pour chaque langage (voir les sections « Affichage du dictionnaire
AppleScript de Photoshop », page 21 et « Affichage de la bibliothèque de types de Photoshop (VBS) »,
page 22). Pour plus de détails sur l’utilisation de l’afficheur modèles d’objets Extend Script, consultez le
JavaScript Tools Guide (Guide des outils JavaScript).
Le chapitre 4 traite du gestionnaire de scripts qui vous permet d’écrire des scripts ciblant la fonctionnalité
Photoshop sinon inaccessible dans l’interface de scripts.
REMARQUE : consultez le fichier LISEZ-MOI livré avec Photoshop pour obtenir des informations de dernière
minute, des exemples de scripts et des informations sur les problèmes non résolus.
Plusieurs conventions sont utilisées lorsqu’il est fait référence à AppleScript, VBScript et JavaScript. Gardez
à l’esprit les abréviations suivantes :
➤ AS pour AppleScript
➤ JS pour JavaScript
Le terme « commandes » est utilisé pour faire référence à la fois aux commandes en AppleScript et aux
méthodes en VBScript et JavaScript.
6
CHAPITRE 1 : Introduction Conventions utilisées dans ce guide 7
Lorsqu’il est fait référence à des propriétés et à des commandes spécifiques, ce manuel suit la convention
de dénomination AppleScript pour cette propriété, et les noms VBScript et JavaScript apparaissent entre
parenthèses. Par exemple :
Dans ce cas, display dialogs fait référence à la propriété AppleScript, DisplayDialogs fait référence à la
propriété VBScript, et displayDialogs fait référence à la propriété JavaScript.
Pour de plus grands blocs de code, les exemples de scripts sont répertoriés sur des lignes distinctes.
AS
layer 1 of layer set 1 of current document
VBS
appRef.ActiveDocument.LayerSets(1).Layers(1)
JS
app.activeDocument.layerSets[0].layers[0]
Enfin, des tableaux sont parfois utilisés pour organiser des listes de valeurs spécifiques à chaque langage.
2 Concepts de base pour les scripts Photoshop
Ce chapitre offre un aperçu des scripts pour Photoshop, décrit la prise en charge des scripts pour les
langages AppleScript, VBScript et JavaScript, la manière d’exécuter les scripts et traite du modèle d’objet
de Photoshop. Il fournit un exemple simple pour vous aider à écrire votre premier script Photoshop.
Si vous êtes déjà familier des scripts ou des langages de programmation, vous pouvez vous permettre de
passer une grande partie de ce chapitre. Utilisez la liste suivante pour trouver les informations dont vous
avez besoin.
➤ Reportez-vous à la section « Modèle d’objet de Photoshop », page 11 pour plus de détails sur le
modèle d’objet de Photoshop.
➤ Pour plus de détails sur la sélection d’un langage de script, consultez le guide Introduction to Scripting
(Introduction aux scripts).
➤ Pour consulter des exemples de scripts créés spécialement pour être utilisés avec Photoshop,
reportez-vous au chapitre 3, « Scripts Photoshop », page 21.
➤ Pour plus de détails sur les objets et commandes Photoshop, utilisez les informations de référence
contenues dans les trois manuels fournis avec cette installation : Adobe Photoshop CS5 AppleScript
Scripting Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5), Adobe
Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts Visual Basic Adobe
Photoshop CS5) et Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les
scripts JavaScript Adobe Photoshop CS5).
REMARQUE : vous pouvez également consulter des informations sur les objets et commandes Photoshop
en utilisant les explorateurs d’objets pour chacun des trois langages de script (voir la section « Affichage
des objets, commandes et méthodes Photoshop », page 21).
8
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Prise en charge des scripts dans Photoshop 9
➤ Vous pouvez ajouter une logique conditionnelle, de sorte que le script prenne automatiquement ses
« décisions » en fonction de la situation en cours. Par exemple, vous pouvez écrire un script qui décide
quelle couleur de bordure ajouter en fonction de la taille de la zone sélectionnée dans une image : « Si
la zone sélectionnée est inférieure à 2 x 4 pouces, ajoutez une bordure verte ; sinon ajoutez une
bordure rouge. »
➤ Un même script peut effectuer des actions concernant plusieurs applications. Ainsi, en fonction du
langage de script que vous utilisez, vous pouvez cibler à la fois Photoshop et une autre application
Adobe Creative Suite 5, comme Adobe Illustrator® CS5, dans le même script.
➤ Vous pouvez ouvrir, enregistrer et renommer des fichiers à l’aide de scripts.
➤ Vous pouvez copier des scripts d’un ordinateur sur un autre. En revanche, si vous utilisez des actions et
que vous changez d’ordinateur, vous devez les recréer.
➤ Les scripts offrent une plus grande souplesse pour l’ouverture automatique de fichiers. Lorsque vous
ouvrez un fichier dans une action, vous devez entrer l’emplacement du fichier dans le code. Les scripts
permettent d’utiliser des variables pour les chemins d’accès aux fichiers.
REMARQUE : consultez l’Aide de Photoshop pour plus de détails sur les actions Photoshop.
Les scripts écrits en JavaScript sont accessibles à partir du menu Scripts d’Adobe Photoshop (Fichier >
Scripts), qui donne un accès simple et rapide à vos scripts JavaScripts. En plaçant un fichier JavaScript à
l’emplacement adéquat sur le disque, il est accessible directement à partir du menu Photoshop.
Pour installer un script JavaScript dans le menu Scripts, placez-le dans le dossier Scripts
(Photoshop CS5/Paramètres prédéfinis/Scripts). Tous les scripts se trouvant dans ce dossier sont affichés,
sans leur extension, dans le menu Scripts. Le nombre de scripts dans le menu Scripts n’est pas limité.
Les scripts ajoutés au dossier Scripts pendant le fonctionnement de Photoshop apparaîtront dans le
menu Scripts uniquement après le prochain lancement de l’application.
Tous les scripts se trouvant dans le dossier Scripts et ses sous-dossiers apparaissent en haut du menu
Fichier > Scripts. Aucune organisation hiérarchique n’est effectuée dans le menu Scripts lorsque vous
ajoutez des sous-dossiers.
La commande Parcourir au bas du menu Scripts (Fichier > Scripts > Parcourir) vous permet d’exécuter
des scripts qui ne sont pas installés dans le dossier Scripts. Vous pouvez également utiliser la commande
Parcourir pour sélectionner les scripts placés dans le dossier Scripts depuis la dernière exécution de
l’application.
Lorsque vous choisissez la commande Parcourir, la boîte de dialogue d’exploration qui s’affiche vous permet
de sélectionner un script à exécuter. Seuls les fichiers .js ou .jsx s’affichent dans la boîte de dialogue
d’exploration. Lorsque vous en sélectionnez un, il est exécuté de la même manière qu’un script installé.
Scripts de démarrage
Pendant son lancement, Photoshop exécute tous les fichiers .jsx qui se trouvent dans les dossiers de
démarrage.
➤ Sous Windows, le dossier de démarrage des scripts définis par l’utilisateur est le suivant :
C:\Program Files\Common Files\Adobe\Startup Scripts CS5\Adobe Photoshop
➤ Sous Mac OS, le dossier de démarrage des scripts définis par l’utilisateur est le suivant :
~/Library/Application Support/Adobe/Startup Scripts CS5/Adobe Photoshop
Si votre script se trouve dans le dossier de démarrage principal, il est également exécuté par toutes les
autres applications de la suite Adobe Creative Suite 5 au démarrage. Si un script de ce type doit être
exécuté uniquement par Photoshop, il doit comporter les lignes de code suivantes :
if( BridgeTalk.appName == "photoshop" ) {
//continue executing script
}
Pour plus de détails, consultez le JavaScript Tools Guide (Guide des outils JavaScript).
Une bonne compréhension du DOM Photoshop et de la manière dont chaque aspect du DOM est associé
à l’application Photoshop et à ses documents facilitera l’écriture des scripts.
Hiérarchie d’imbrication
Le modèle d’objet de Photoshop est une hiérarchie d’imbrication, ce qui signifie que les objets contenus
dans le modèle sont identifiés partiellement par les objets qui les contiennent. Dans Photoshop, l’objet
Application se trouve en haut de la hiérarchie. Les applications contiennent une collection Documents.
La collection Documents contient des objets Document. Un objet Document contient une
collection ArtLayers, une collection HistoryStates, une collection Layers, une collection Layersets et une
collection Channels. Les commandes ou méthodes du DOM vous permettent d’ordonner à des documents
Photoshop d’ajouter et de supprimer des objets, ou de définir ou changer des propriétés individuelles
d’objet comme la couleur, la taille et la forme. Dans le diagramme ci-dessous, chaque nœud de la
hiérarchie représente une classe dans le DOM Photoshop.
Le modèle d’objet de Photoshop utilise des éléments (AppleScript) ou des collections (VBScript,
JavaScript) pour regrouper facilement les classes. L’illustration du modèle d’objet ci-dessous ne représente
pas d’éléments ou de collections d’objets. Les classes ne sont pas toutes associées à une collection.
Cependant, certaines classes clé sont regroupées par éléments ou collection. Les éléments/collections
suivants existent dans Photoshop : Art Layers, Channels, Color Samplers, Count Items, Documents,
Layers, Layer Comps, Layer Sets, History States, Notifiers, Path Items, Path Points Sub Path
Items et Text Fonts. Reportez-vous au guide Introduction to Scripting (Introduction aux scripts) pour plus
de détails sur les éléments et les collections.
REMARQUE : dans Photoshop, les collections VBScript sont indexées à partir de 1 et non de 0 (à la différence
d’autres groupes VBScript, qui commencent l’indexation à partir de 0).
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Modèle d’objet de Photoshop 12
.
Hiérarchie d’imbrication Photoshop Application
(illustrant uniquement les classes clé)
Classes Layer
Photoshop possède deux types de calques : un calque Art Layer qui comporte un contenu d’image et un
groupe Layer Set qui ne comporte aucun ou plusieurs calques graphiques.
Un groupe Art Layer est une classe layer à l’intérieur d’un document qui vous permet de travailler sur un
élément d’une image sans perturber les autres. Les images se composent généralement de plusieurs
calques, définis par un groupe Layer Set. Vous pouvez modifier la composition d’une image en modifiant
l’ordre et les attributs des calques qui la composent.
Un élément Text Item est un type particulier de calque graphique qui vous permet d’ajouter du texte à
une image. Dans Photoshop, un élément Text Item est mis en œuvre comme une propriété du calque
graphique. Pour plus de détails sur les éléments de texte, reportez-vous à la section « Utilisation de l’objet
Text Item », page 41.
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Modèle d’objet de Photoshop 13
Un groupe Layer Set est une classe qui comporte plusieurs calques. Elle s’apparente à un dossier placé sur
votre bureau. A l’image d’un dossier qui peut contenir d’autres dossiers, un groupe de calques est récursif.
Ainsi, un groupe de calques peut appeler un autre groupe de calques dans la hiérarchie du modèle d’objet.
Pour plus de détails sur les calques, reportez-vous à la section « Utilisation des objets calque », page 36.
Classe Channel
La classe Channel est utilisée pour stocker les informations de pixel sur la couleur d’une image. La couleur
de l’image détermine le nombre de couches disponibles. Par exemple, une image RVB possède quatre
couches par défaut : une couche pour chaque couleur primaire et une couche utilisée pour l’édition de
l’image entière. Vous pouvez activer la couche rouge pour manipuler les seuls pixels rouges de l’image ou
bien choisir de manipuler toutes les couches à la fois.
Ces types de couches sont associés au mode du document et appelés des couches de composante. Outre
les couches de composante, Photoshop vous permet de créer des couches supplémentaires : vous pouvez
créer une couche de ton direct, une couche de zone masquée et une couche de zone sélectionnée.
A l’aide des commandes ou des méthodes d’un objet Channel, vous pouvez créer, supprimer et dupliquer
des couches. Vous pouvez également récupérer l’histogramme d’une couche, modifier son type ou
modifier les couches actuellement sélectionnées.
Pour plus de détails sur les couches, reportez-vous à la section « Utilisation des objets Channel », page 46.
Classe Selection
La classe Selection est utilisée pour spécifier une zone de pixels dans le document actif (ou dans un
calque sélectionné du document actif ) que vous souhaitez manipuler. Pour plus de détails sur les
sélections, reportez-vous à la section « Utilisation des objets Selection », page 42.
La classe Document Info stocke des métadonnées à propos d’un document. Les métadonnées sont des
données qui permettent de décrire le contenu ou les caractéristiques d’un fichier. Pour plus de détails sur
la classe Document Info, reportez-vous à la section « Utilisation de l’objet Document Info », page 47.
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Modèle d’objet de Photoshop 14
La classe Path Item représente des informations sur un objet de dessin, comme le contour d’une forme ou
une ligne courbe. La classe Sub Path Item est contenue dans la classe Path Item et donne la véritable
géométrie de la forme. La classe Path Point contient des informations sur chaque point d’un sous-tracé
(voir la section « Utilisation de l’objet PathItem », page 49).
Classe Preferences
La classe Preferences vous permet d’accéder aux paramètres des préférences utilisateur et de les définir
(voir la section « Utilisation des préférences de document », page 61).
Classe Notifier
L’objet Notifier lie un événement à un script. Si, par exemple, vous souhaitez que Photoshop crée
automatiquement un document lorsque vous ouvrez l’application, vous pouvez lier un script qui crée un
objet Document à un événement Open Application. Pour plus de détails sur les notifications,
reportez-vous à la section « Utilisation des objets Notifier », page 48.
L’objet Count Item fournit la prise en charge des scripts pour l’outil Comptage.
L’objet Color Sampler fournit la prise en charge des scripts pour l’outil Echantillonnage de couleur.
L’objet Measurement Scale fournit la prise en charge des scripts pour la nouvelle fonction Echelle de
mesure qui vous permet de définir une échelle pour votre document.
Nom de l’objet Description Pour créer cet objet sans utiliser de script
Application Application Photoshop. Lancez l’application Photoshop.
Document Objet utilisé, dans lequel vous créez des Dans Photoshop, choisissez Fichier >
calques, des couches, des actions et autres. Nouveau ou Fichier > Ouvrir.
Dans un script, vous nommez, ouvrez ou
enregistrez un document en procédant de la
même façon que pour un fichier dans
l’application.
Selection Zone sélectionnée dans un calque ou un Choisissez l’outil Rectangle de sélection
document. ou Lasso et faites glisser la souris.
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Modèle d’objet de Photoshop 15
Nom de l’objet Description Pour créer cet objet sans utiliser de script
Path Item Objet de dessin, tel que le contour d’une Choisissez l’outil Sélection de tracé ou Plume
forme, une ligne droite ou une courbe. et dessinez un tracé à l’aide de la souris.
Channel Informations de pixel sur la couleur d’une Choisissez Fenêtre > Couches.
image.
Art Layer Classe de calques d’un document vous Choisissez Calque > Nouveau > Calque
permettant de travailler sur un élément ou Fenêtre > Calques.
d’une image sans toucher aux autres.
Layer Set Collection d’objets Art Layer. Group est le Choisissez la commande Calque >
nom actuel utilisé dans l’interface Nouveau > Groupe.
Photoshop. Layer Set était le nom utilisé
dans une version antérieure de Photoshop.
Le nom Object demeure identique à des fins
de rétrocompatibilité.
Layer Comp Instantané de l’état des calques d’un Choisissez Fenêtre > Compositions de
document. calques. Sélectionnez ensuite l’icône de
composition de calques.
Document Métadonnées sur un objet Document. Choisissez Fichier > Informations.
Info
REMARQUE : les métadonnées sont des
données qui permettent de décrire le
contenu ou les caractéristiques d’un fichier,
comme le nom de fichier, la date et l’heure
de création, le nom de l’auteur, le nom de
l’image enregistrée dans le fichier, etc.
Notifier Notifie à un script qu’un événement se Choisissez la commande Fichier >
produit, cet événement déclenchant ensuite Scripts > Gestionnaire d’événements
l’exécution du script. Par exemple, lorsqu’un de script.
utilisateur clique sur le bouton OK, l’objet
notifier indique au script ce qu’il doit faire.
Preferences Paramètres de préférences de l’application. Choisissez Edition > Préférences sous
Windows, ou Photoshop > Préférences
sous Mac OS.
History State Stocke une version du document dans l’état Choisissez Fenêtre > Historique, puis
où il se trouvait à chaque fois que vous l’avez sélectionnez un état d’historique dans le
enregistré. panneau Historique.
REMARQUE : vous pouvez utiliser un objet
History State pour remplir un objet
Selection ou pour rétablir un état antérieur
du document.
Color Sampler Représente un échantillonnage de couleur Choisissez l’outil Echantillonnage de
dans votre document. couleur, puis cliquez dans le document.
Count Item Représente un élément compté dans le Choisissez l’outil Comptage, puis cliquez
document. dans le document.
Measurement Représente l’échelle de mesure de votre L’objet Measurement Scale ne peut être
Scale document. créé, mais vous pouvez modifier ses
propriétés en utilisant la commande
Analyse > Echelle de mesure >
Personnalisée.
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Modèle d’objet de Photoshop 16
Objets supplémentaires
Le modèle d’objet de Photoshop inclut d’autres objets que ceux décrits dans la hiérarchie d’imbrication
ci-dessus. La plupart des classes sont utilisées en tant que types pour les propriétés ou afin d’apporter des
informations (en tant qu’arguments) aux commandes et aux méthodes. Par exemple :
➤ La classe color value (SolidColor/SolidColor) fournit le type pour les propriétés background
color (backgroundColor/backgroundColor) et foreground color
(ForegroundColor/foregroundColor) de l’objet Application (voir la section « Utilisation des
objets de couleur », page 51).
➤ Les options d’ouverture et d’enregistrement des documents sont définies comme des classes
transmises aux commandes qui ouvrent et enregistrent les documents ; par exemple, la classe BMP
save options (BMPSaveOptions/BMPSaveOptions) peut être transmise comme argument à la
commande ou méthode save (saveAs/saveAs) (voir les sections « Ouverture d’un document »,
page 28 et « Enregistrement d’un document », page 31).
Constantes
Les constantes constituent un élément supplémentaire important du modèle d’objet de Photoshop pour
les langages JavaScript et VBScript. Les constantes sont un type de valeur définissant une propriété. Par
exemple, la propriété kind d’un objet Art Layer vous permet de définir uniquement des types
spécifiques que Photoshop autorise. Pour des informations d’ordre général sur les constantes,
reportez-vous au guide Introduction to Scripting (Introduction aux scripts).
REMARQUE : dans ce document, les valeurs réelles des énumérations pour VBScript sont données au format
suivant :
newLayerRef.Kind = 2 '2 indicates psLayerKind --> 2 (psTextLayer)
Le signe ’ avant l’explication crée un commentaire et empêche le texte situé à droite de ce signe d’être lu
par le moteur de script. Pour plus de détails sur l’utilisation des commentaires, reportez-vous au guide
Introduction to Scripting (Introduction aux scripts).
Par exemple, recherchez l’objet ArtLayer soit dans le guide Adobe Photoshop CS5 JavaScript Scripting
Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5), soit dans le guide Adobe
Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts Visual Basic Adobe
Photoshop CS5). Une des propriétés de cet objet est Kind( kind). Le type de valeur de cette propriété
comprend un lien vers la constante qui définit les valeurs autorisées pour la propriété. Pour VBScript et
JavaScript, les constantes sont respectivement PSLayerKind et LayerKind. Cliquez dessus afin d’afficher
les valeurs utilisables pour définir la propriété kind.
REMARQUE : des objets différents peuvent utiliser le même nom de propriété avec des valeurs constantes
différentes. Les valeurs constantes pour la propriété kind de l’objet Channel sont différentes des valeurs
constantes pour la propriété kind de l’objet Art Layer.
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Création d’un exemple de script Hello World 17
A la création du document, nous allons également créer une variable nommée docRef, puis affecter
une référence au document comme valeur de docRef. Le document va mesurer 4 pouces de largeur et
de 2 pouces de hauteur
Dans notre script, nous créons une variable nommée artLayerRef puis attribuons une référence à
l’objet Art Layer comme valeur de artLayerRef.
REMARQUE : nous allons également inclure des commentaires tout au long des scripts, et comme il s’agit de
notre premier script, nous allons même en abuser.
Ces étapes reflètent un chemin spécifique dans la structure hiérarchique, comme illustré ci-dessous.
Application
Document
Art Layer
Text Item
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Création d’un exemple de script Hello World 18
REMARQUE : l’emplacement par défaut de ce dernier est Applications > AppleScript > Editeur de scripts.
REMARQUE : les lignes commençant par « -- » sont des commentaires. Les commentaires sont
facultatifs.
-- Sample script to create a new text item and
-- change its contents.
--target Photoshop CS5
tell application "Adobe Photoshop CS5"
2. Cliquez sur le bouton Exécuter pour exécuter le script. Photoshop crée un document, ajoute un
nouveau calque, change le calque en calque de texte et définit le texte sur « Hello, World ».
3. Cliquez deux fois sur ce fichier dans l’Explorateur de Windows pour exécuter le script.
Puisque vous utiliserez Photoshop pour exécuter vos scripts JavaScript, il n’est pas nécessaire d’inclure un
code qui ouvre Photoshop au début du script.
REMARQUE : Adobe a créé le langage de script Extend Script pour augmenter le nombre de scripts
JavaScript utilisables avec Photoshop. Vous pouvez utiliser la commande Extend Script #target pour
cibler l’application Photoshop et créer la possibilité d’ouvrir des scripts JavaScript qui manipulent
Photoshop à partir d’une zone quelconque de votre système de fichiers. Consultez le chapitre « Script UI »
du JavaScript Tools Guide (Guide des outils JavaScript) pour plus de détails.
CHAPITRE 2 : Concepts de base pour les scripts Photoshop Création d’un exemple de script Hello World 20
// Release references
docRef = null
artLayerRef = null
textItemRef = null
2. Enregistrez un fichier sous forme de fichier texte avec une extension de nom de fichier .jsx dans le
dossier Paramètres prédéfinis/Scripts de votre répertoire Adobe Photoshop CS5.
REMARQUE : vous devez placer vos scripts JavaScript dans le dossier Paramètres prédéfinis/Scripts afin
de les rendre accessibles à partir du menu Fichier > Scripts dans Photoshop. Les scripts apparaîtront
dans le menu Fichier > Scripts à la session suivante.
REMARQUE : Photoshop prend également en charge les fichiers JavaScript qui portent une
extension .js.
➣ Si Photoshop est déjà ouvert, choisissez Fichier > Scripts > Parcourir, naviguez ensuite vers le
dossier Paramètres prédéfinis > Scripts, puis sélectionnez votre script.
➣ Démarrez ou redémarrez Photoshop, choisissez ensuite Fichier > Scripts, puis sélectionnez votre
script à partir du menu Scripts.
3 Scripts Photoshop
Ce chapitre présente plusieurs techniques pour utiliser le modèle d’objet de document de Photoshop
(DOM) pour créer des scripts à utiliser spécifiquement avec Photoshop.
Vous apprendrez aussi à vous servir des manuels de référence et des explorateurs de modèles d’objets
pour trouver des informations sur les objets, les classes, les propriétés, les commandes et même sur
certaines valeurs (appelées constantes ou énumérations) que vous pouvez utiliser pour créer des scripts
AppleScripts, VBScript et JavaScripts pour Photoshop.
CONSEIL : tout au long de ce chapitre, les explications sur la création de scripts sont suivies d’instructions
permettant de localiser les informations relatives aux éléments spécifiques utilisés dans chaque script.
L’utilisation de ces instructions vous aidera à comprendre rapidement comment créer des
scripts Photoshop.
21
CHAPITRE 3 : Scripts Photoshop Ciblage et référencement de l’objet Application 22
1. Démarrez Word, puis choisissez la commande Outils > Macro > Visual Basic Editor.
2. Choisissez Outils > Références, cochez ensuite la case Adobe Photoshop Type Library, puis cliquez
sur OK.
4. Sélectionnez Photoshop CS5 type library dans la liste des bibliothèques ouvertes affichées dans le
menu déroulant en haut à gauche.
5. Choisissez une classe d’objet pour afficher des informations supplémentaires sur la classe.
5. Cliquez sur le bouton Ajouter. La bibliothèque sélectionnée s’affiche dans la section des projets et
composants sélectionnés de la fenêtre.
7. A présent, la bibliothèque Photoshop est chargée dans l’explorateur d’objets. Cliquez sur le signe plus
en regard de l’icône de la bibliothèque Photoshop.
9. Les objets définis dans la bibliothèque Photoshop sont répertoriés. Vous pouvez les sélectionner
individuellement pour afficher plus de détails sur la classe.
AS Pour cibler Photoshop en AppleScript, vous devez encadrer votre script avec les instructions suivantes :
tell application "Adobe Photoshop CS5"
...
end tell
REMARQUE : toutes les commandes étant incluses dans le bloc tell, vous n’avez pas besoin de référencer
l’objet Application dans l’ensemble du script.
JS En JavaScript, l’objet Application n’ayant pas besoin d’être référencé, toutes les propriétés et méthodes
de l’application sont accessibles sans qualification. Vous pouvez référencer l’application en tant
qu’élément de la structure hiérarchique ou l’ignorer, en fonction de la clarté que procure l’une ou l’autre
des solutions à vos scripts.
Pour référencer l’objet Application, utilisez l’objet global prédéfini app, à la place du nom de classe.
et
var docRef=documents[1]
Pour créer un objet dans un script, vous devez nommer le type d’objet que vous souhaitez créer, puis
utiliser la commande suivante :
➤ AS : make
➤ VBS : Add
➤ JS : add()
Comme vous pouvez le constater à la section « Modèle d’objet de Photoshop », page 11, l’objet
Document contient tous les autres objets à l’exception des objets Application, Notifier et
Preferences. Vous devez par conséquent référencer l’objet Document lorsque vous ajoutez des objets
autres que Document et Notifier au script (il est impossible d’ajouter un nouvel objet Preferences).
REMARQUE : en VBScript et JavaScript, vous utilisez le nom de collection de l’objet pour nommer le type
d’objet. Par exemple, vous ajoutez un document à la collection Documents ; vous ajoutez un calque
graphique à la collection art layers. Reportez-vous au guide Introduction to Scripting (Introduction aux
scripts) pour plus de détails sur les éléments et collections.
CHAPITRE 3 : Scripts Photoshop Création d’objets dans un script 24
Vous pouvez également utiliser la commande set pour créer une variable contenant une référence à un
nouveau document. Dans l’exemple suivant, la variable nommée docRef contient une référence au
nouveau document :
set docRef to make new document
Pour créer un objet autre qu’un document, vous devez référencer l’objet Document contenant l’objet.
L’instruction suivante crée un calque graphique dans le document contenu dans la variable nommée
docRef.
REMARQUE : lorsque vous créez un objet en AppleScript, vous ajoutez l’objet à un élément, de la même
façon que vous ajoutez un objet VBScript ou JavaScript à une collection. En AppleScript, cependant, le
nom de l’élément est implicite dans l’instruction make ou set. Ainsi, l’instruction :
make new document
signifie réellement :
make new document in the documents element
Par exemple, pour créer un document dans un script VBScript, vous ne pouvez pas utiliser le nom de l’objet,
comme dans l’exemple suivant, qui crée un objet Document :
appRef.Document.Add()
Vous devez utiliser le nom de la collection, soit la forme plurielle du nom de l’objet, comme suit :
appRef.Documents.Add()
REMARQUE : dans cet exemple, l’objet Application est référencé via une variable nommée appRef (voir la
section « Ciblage et référencement de l’objet Application », page 22 pour plus de détails).
Pour ajouter un objet ArtLayer, vous devez référencer les objets Application et Document qui
contiendront le calque graphique. L’exemple suivant référence l’objet Application à l’aide de la variable
appRef et l’objet Document à l’aide de l’index du document plutôt que du nom du document.
appRef.Documents(1).ArtLayers.Add()
REMARQUE : dans Photoshop, les collections VBScript sont indexées à partir de 1 et non de 0, ce qui signifie
que le premier document créé prend l’indice 1 et non l’indice 0.
CHAPITRE 3 : Scripts Photoshop Définition de l’objet actif 25
Si vous recherchez l’objet Document dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference
(Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual
Basic, vous verrez qu’il n’y a pas de méthode Add() pour l’objet. La méthode Add() est cependant disponible
pour l’objet Documents. De même, l’objet ArtLayer n’a pas de méthode Add() ; l’objet ArtLayers, si.
REMARQUE : l’objet Layers est une exception, car il s’agit d’un objet de collection, mais sans méthode
Add(). La collection Layers inclut à la fois les objets ArtLayer et LayerSet, créés à l’aide de la méthode
Add sur la collection ArtLayers ou LayerSets. Pour plus de détails, recherchez l’objet Layers dans le
guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts Visual Basic
Adobe Photoshop CS5).
JS En JavaScript, vous pouvez utiliser la méthode add() uniquement avec le nom de collection. La méthode
add() n’est autorisée qu’avec les objets de collection.
L’instruction JavaScript pour la création d’un document est semblable à l’instruction VBScript :
documents.add()
et non :
document.add()
REMARQUE : vous pouvez si vous le souhaitez inclure une référence à l’objet Application. L’instruction
suivante est équivalente à l’exemple précédent :
app.documents.add()
Pour ajouter un objet ArtLayer, vous devez référencer l’objet Document qui contient le calque et utiliser la
méthode add() pour la collection ArtLayers, avec la propriété artLayers de l’objet Document.
documents[0].artLayers.add()
Comme avec VBScript, la méthode add() est associée à l’objet JavaScript Documents mais pas à l’objet
Document. De même, l’objet ArtLayer n’a pas de méthode add() ; l’objet ArtLayers, si.
REMARQUE : la collection Layers n’inclut pas de méthode add(). Pour plus de détails, recherchez l’objet
Layers dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les
scripts JavaScript Adobe Photoshop CS5).
La même règle s’applique aux scripts. Si votre script crée deux documents ou plus, les commandes et
méthodes du script sont exécutées sur le document actif. Il convient donc, pour s’assurer que les
commandes portent sur le bon document, de désigner lors de la programmation le document actif avant
d’exécuter des commandes ou méthodes dans le script.
REMARQUE : l’objet parent est celui qui contient l’objet spécifié. Par exemple, l’application est le parent du
document ; un document est le parent d’un calque, d’une sélection ou d’une couche.
Par exemple, si vous recherchez l’objet Application dans le guide Adobe Photoshop CS5 JavaScript Scripting
Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5), ou dans l’afficheur de
modèles d’objets ExtendScript, vous trouverez que l’une de ses propriétés est activeDocument ; si vous
recherchez l’objet Document, vous trouverez activeLayer et activeHistoryState comme propriétés. De
la même manière, si vous recherchez application dans le guide Adobe Photoshop CS5 AppleScript Scripting
Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5), ou dans le dictionnaire
AppleScript de Photoshop, vous le trouverez comme propriété de current, etc.
Pour des exemples de scripts définissant des objets actifs, reportez-vous aux sections suivantes.
AS --create 2 documents
set docRef to make new document with properties ¬
{width:4 as inches, height:4 as inches}
set otherDocRef to make new document with properties ¬
{width:4 as inches, height:6 as inches}
JS // Create 2 documents
var docRef = app.documents.add( 4, 4)
var otherDocRef = app.documents.add (4,6)
REMARQUE : par défaut, Photoshop attribue les noms Calque 1, Calque 2, etc., aux calques.
VBS ‘ This example assumes appRef and docRef have been previously defined and assigned
‘ to the application object and a document object that contains at least one layer.
appRef.ActiveDocument = docRef
docRef.ActiveLayer = docRef.Layers(1)
Recherchez la propriété ActiveLayer sur l’objet Document dans le guide Adobe Photoshop CS5 Visual Basic
Scripting Reference (Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans
l’explorateur d’objets Visual Basic.
REMARQUE : vous pouvez également indiquer le calque à utiliser par son nom. Par défaut, Photoshop
attribue les noms Calque 1, Calque 2, etc., aux calques (voir la section « Référencement des objets
ArtLayer », page 38).
JS // This example assumes docRef has been previously defined and assigned to a
// document object that contains at least one layer.
activeDocument = docRef
docRef.activeLayer = docRef.layers[0]
Recherchez la propriété activeLayer sur l’objet Document dans le guide Adobe Photoshop CS5 JavaScript
Scripting Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5) ou dans
l’afficheur de modèles d’objets ExtendScript.
REMARQUE : vous pouvez également indiquer le calque à utiliser par son nom. Par défaut, Photoshop
attribue les noms Calque 1, Calque 2, etc., aux calques (voir la section « Référencement des objets
ArtLayer », page 38).
CHAPITRE 3 : Scripts Photoshop Ouverture d’un document 28
AS Définissez comme couches actives les première et troisième couches à l’aide d’un tableau de couches :
set current channels of current document to ¬
{ channel 1 of current document, channel 3 of current document }
Vous pouvez sinon sélectionner toutes les couches de composante en utilisant la propriété component
channels de l’objet Document.
VBS Définissez comme couches actives du document actif les première et troisième couches à l’aide d’un
tableau de couches :
‘ This example assumes docRef is already the ActiveDocument
Dim theChannels
theChannels = Array(docRef.Channels(1), docRef.Channels(3))
docRef.ActiveChannels = theChannels
Vous pouvez également sélectionner toutes les couches de composante à l’aide de la propriété
ComponentChannels de l’objet Document.
appRef.ActiveDocument.ActiveChannels= _
appRef.ActiveDocument.ComponentChannels
JS Définissez comme couches actives les première et troisième couches à l’aide d’un tableau de couches :
theChannels = new Array(docRef.channels[0], docRef.channels[2])
docRef.activeChannels = theChannels
Vous pouvez également sélectionner toutes les couches de composante à l’aide de la propriété
componentChannels de l’objet Document.
app.activeDocument.activeChannels =
activeDocument.componentChannels
En JavaScript, vous devez créer un objet File, puis transmettre à la commande open() une référence à
l’objet.
Vous pouvez définir des options pour les types de documents de la liste suivante, afin de spécifier le mode
d’ouverture du document (hauteur et largeur de la fenêtre d’ouverture du document, page à afficher à
l’ouverture d’un document multipage, etc.).
➤ PhotoCD
➤ CameraRaw
➤ RawFormat
➤ Adobe PDF
➤ EPS
Pour prendre connaissance des options disponibles pour chaque format de fichier, recherchez les
propriétés des objets OpenOptions commençant par le nom du format de fichier requis. Par exemple :
➤ Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5), recherchez la classe Photo CD open options ou la classe EPS open
objects.
➤ Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5) ou le guide Adobe Photoshop CS5 JavaScript Scripting Reference
(Guide de référence pour les scripts JavaScript Adobe Photoshop CS5), recherchez les objets
PhotoCDOpenOptions ou EPSOpenOptions.
➤ Un lissage sera appliqué afin de minimiser l’aspect crénelé du contour des images du document.
CHAPITRE 3 : Scripts Photoshop Ouverture d’un document 30
➤ La forme initiale du document sera modifiée conformément aux propriétés de hauteur et de largeur si
sa largeur n’atteint pas le double de sa hauteur.
JS REMARQUE : l’objet File d’ExtendScript attend une notation URI (universal resource identifier).
Reportez-vous au JavaScript Tools Guide (Guide des outils JavaScript) pour plus de détails.
// Set the ruler units to pixels
var originalRulerUnits = app.preferences.rulerUnits
app.preferences.rulerUnits = Units.PIXELS
// Get a reference to the file that we want to open
var fileRef = new File(“/c/pdffiles/myfile.pdf”)
➤ Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5), recherchez la classe EPS save options.
➤ Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5) ou le guide Adobe Photoshop CS5 JavaScript Scripting Reference
(Guide de référence pour les scripts JavaScript Adobe Photoshop CS5), recherchez EPSSaveOptions.
REMARQUE : il est important de noter que les formats d’ouverture (Open) et d’enregistrement (Save) ne sont
pas identiques (voir la section « Définition des formats de fichier à ouvrir », page 29 à titre de
comparaison).
REMARQUE : les formats facultatifs suivants sont disponibles uniquement lorsqu’ils sont installés
explicitement :
➤ Alias PIX
➤ Electric Image
➤ SGI RGB
➤ Wavefront RLA
➤ SoftImage
JS app.documents.add( 4, 4 )
jpgFile = new File( "/Temp001.jpeg" )
jpgSaveOptions = new JPEGSaveOptions()
jpgSaveOptions.embedColorProfile = true
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE
jpgSaveOptions.matte = MatteType.NONE
jpgSaveOptions.quality = 1
app.activeDocument.saveAs(jpgFile, jpgSaveOptions, true,
Extension.LOWERCASE)
AS Les propriétés de la classe settings permettent de définir les préférences de l’application dans
AppleScript. Le script suivant définit l’unité utilisée pour les règles et le texte :
set ruler units of settings to inch units
set type units of settings to pixel units
Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript de Photoshop, recherchez la
classe settings-object pour afficher toutes les propriétés de paramètres que vous pouvez utiliser.
VBS L’objet Preferences est une propriété de l’objet Application. Lorsque vous utilisez l’objet Preferences
dans un script VBScript, vous devez indiquer son appartenance à l’objet Application.
appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches)
appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels)
Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual Basic, recherchez l’objet
Preferences pour afficher toutes les propriétés de paramètres que vous pouvez utiliser. Recherchez
également la propriété Preferences sur l’objet Application.
CHAPITRE 3 : Scripts Photoshop Autorisation ou refus d’ouverture de boîtes de dialogue 33
Dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les scripts
JavaScript Adobe Photoshop CS5) ou dans l’afficheur de modèles d’objets ExtendScript, recherchez l’objet
Preferences pour afficher toutes les propriétés de paramètres que vous pouvez utiliser. Recherchez
également la propriété preferences sur l’objet Application.
Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript de Photoshop, recherchez la
classe application pour trouver les valeurs que vous pouvez utiliser pour la propriété display dialogs.
VBS Pour définir les préférences relatives aux boîtes de dialogue, utilisez la propriété DisplayDialogs de
l’objet Application.
appRef.DisplayDialogs = 3
'for PsDialogModes --> 3 (psDisplayNoDialogs)
DisplayDialogs étant une propriété de l’objet Application, vous devez référencer l’objet Application
dans le script pour obtenir la propriété.
Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual Basic, recherchez la propriété
DisplayDialogs de l’objet Application. Vous verrez que le type de valeur de cette propriété est la
constante PsDialogModes. Vous pouvez également rechercher les options pour PsDialogModes.
JS Pour définir les préférences relatives aux boîtes de dialogue, utilisez la propriété displayDialogs de
l’objet Application.
displayDialogs = DialogModes.NO
Dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les scripts
JavaScript Adobe Photoshop CS5) ou dans l’afficheur de modèles d’objets ExtendScript, recherchez la
propriété displayDialogs de l’objet Application, puis recherchez la constante DialogModes.
Vous utilisez les propriétés et commandes de l’objet Application pour travailler avec la fonctionnalité
Photoshop et les objets tels que les suivants :
➤ Paramètres ou préférences globaux de Photoshop, tels que les valeurs d’unité ou les
paramètres de couleur (voir la section « Définition des préférences de l’application », page 32).
➤ Documents : vous pouvez ajouter ou ouvrir des documents et définir le document actif(voir les
sections « Ouverture d’un document », page 28 et « Définition de l’objet actif », page 25).
➤ Actions : vous pouvez exécuter des actions créées soit par l’écriture de scripts, soit en utilisant le
panneau Scripts de l’application Photoshop (voir la section « Gestionnaire de scripts », page 73).
Vous pouvez utiliser les propriétés de l’objet Application pour obtenir des informations, notamment :
REMARQUE : en AppleScript, fonts est une collection séparée, qui ne requiert pas de référence à
l’objet application pour être récupérée.
➤ Espace de mémoire inutilisé, disponible pour Adobe Photoshop, à l’aide de la propriété free memory
(FreeMemory/freeMemory) de l’objet Application.
Pour plus de détails, recherchez les propriétés de l’objet Application dans le guide de référence ou dans
l’explorateur d’objets correspondant au langage utilisé.
➤ Accès aux objets contenus dans l’objet Document, par exemple ArtLayer ou Channel (voir la
section « Modèle d’objet de Photoshop », page 11).
➤ Manipulation d’un objet Document spécifique à l’aide de commandes ou de méthodes. Par exemple,
vous pouvez recadrer, faire pivoter ou appliquer une symétrie à la zone de travail, redimensionner
l’image ou la zone de travail et rogner l’image (voir la section « Manipulation d’un objet document »,
page 35 pour obtenir une démonstration).
➤ Récupération du calque actif (voir la section « Définition du calque actif », page 27).
➤ Enregistrement du document actif (voir la section « Enregistrement d’un document », page 31).
➤ Opérations de copier-coller dans le document actif ou entre plusieurs documents (voir la section
« Présentation de l’interaction avec le Presse-papiers », page 54).
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 35
➤ Enregistrement des préférences d’unité de la règle existantes et définition de l’unité de la règle en pouces
➤ Ouverture d’un fichier existant en tant que document (à l’aide du fichier Ducky.tif )
➤ Modification de la taille de la fenêtre de document (ou zone de travail) à 4 pouces de large sur
4 pouces de haut (10 cm x 10 cm)
➤ Recadrage de l’image
REMARQUE : reportez-vous à la section « Définition des préférences de l’application », page 32 pour plus de
détails sur les unités de mesure des règles.
//this sample script assumes the ruler units have been set to inches
docRef.resizeImage( 4,4 )
docRef.resizeCanvas( 4,4 )
docRef.trim(TrimType.TOPLEFT, true, false, true, false)
➤ Les objets ArtLayer, qui peuvent comporter des contenus d’image et qui sont pour ainsi dire
équivalents aux calques dans l’application Photoshop.
REMARQUE : un objet ArtLayer peut également contenir du texte si vous utilisez la propriété kind
pour définir le type de l’objet ArtLayer sur calque de texte.
➤ Les objets Layer Set, qui peuvent contenir zéro ou plusieurs objets ArtLayer.
Lorsque vous créez un calque, vous devez spécifier si vous créez un calque graphique (ArtLayer) ou un
groupe de calques (Layer Set).
REMARQUE : les objets ArtLayer et LayerSet ont tous deux des collections correspondantes, à savoir
ArtLayers et LayerSets, elles-mêmes dotées d’une commande add/Add/add(). Vous pouvez référencer
(mais pas ajouter) des objets ArtLayer et LayerSet à l’aide de la collection Layers, car contrairement aux
autres collections, celle-ci n’est pas dotée de commande add/Add/add().
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 37
' Create a new art layer at the beginning of the current document
Dim docRef
Dim layerObj
Set docRef = appRef.Documents.Add()
Set layerObj = appRef.ActiveDocument.ArtLayers.Add
layerObj.Name = "MyBlendLayer"
layerObj.BlendMode = 2 'psNormalBlend
' Create a new LayerSet (it will be created at the beginning of the document)
Dim newLayerSetRef
Set newLayerSetRef = appRef.ActiveDocument.LayerSets.Add
// Create a new LayerSet (it will be created at the beginning of the // document)
var newLayerSetRef = app.activeDocument.layerSets.add()
Lorsque vous créez un calque dans l’application Photoshop (plutôt qu’un script), le calque est ajouté au
panneau Calques, et un numéro lui est attribué. Ce numéro fait office de nom et ne correspond pas au
numéro d’index des objets ArtLayer créés dans un script.
Votre script VBScript ou JavaScript choisira toujours le calque situé en haut de la liste du panneau Calques
comme premier calque de l’index. Par exemple, si votre document compte quatre calques, l’application
Photoshop les intitule Calque d’arrière-plan, Calque 1, Calque 2 et Calque 3. Le Calque 3 est généralement
en haut de la liste dans le panneau Calques, car il a été ajouté en dernier.
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 39
Vous pouvez utiliser la syntaxe suivante pour faire référence aux calques par le nom qui leur a été attribué
par l’application :
REMARQUE : à la différence des références d’objets en JavaScript ou VBScript, les noms de références
d’objets AppleScript ne sont pas constants. Fait référence à un guide de langage AppleScript ou à un
manuel contenant des informations sur le référencement d’un fichier à l’aide de as alias ou de
to a reference to file.
JS layers["Layer 3"].name //using the collection name and square brackets for the collection
En AppleScript, vous pouvez également dupliquer un calque directement dans son groupe de destination.
set current document to document "My Document"
set layerSetRef to make new layer set at end of current document
duplicate layer "Layer 1" of current document to end of layerSetRef
VBS En VBScript, vous pouvez également dupliquer le calque en appliquant la même méthode.
Dim appRef, docRef
Set appRef = CreateObject("Photoshop.Application")
Recherchez la commande link dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide
de référence pour les scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript
de Photoshop.
VBS Set layer1Ref = docRef.ArtLayers.Add()
Set layer2Ref = docRef.ArtLayers.Add()
layer1Ref.Link layer2Ref
Recherchez Link comme méthode de l’objet ArtLayer dans le guide Adobe Photoshop CS5 Visual Basic
Scripting Reference (Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans
l’explorateur d’objets Visual Basic. Recherchez également Add comme méthode de l’objet ArtLayers.
JS var layerRef1 = docRef.artLayers.add()
var layerRef2 = docRef.artLayers.add()
layerRef1.link(layerRef2)
Recherchez link() comme méthode de l’objet ArtLayer dans le guide Adobe Photoshop CS5 JavaScript
Scripting Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5) ou dans l’afficheur
de modèles d’objets ExtendScript. Recherchez également Add() comme méthode de l’objet ArtLayers.
Recherchez la commande apply layer style dans le guide Adobe Photoshop CS5 AppleScript Scripting
Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire
AppleScript de Photoshop.
VBS docRef.ArtLayers("L1").ApplyStyle "Puzzle (Image)"
Recherchez ApplyStyle comme méthode de l’objet ArtLayer dans le guide Adobe Photoshop CS5 Visual
Basic Scripting Reference (Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans
l’explorateur d’objets Visual Basic.
JS docRef.artLayers["L1"].applyStyle("Puzzle (Image)")
Recherchez applyStyle() comme méthode de l’objet ArtLayer dans le guide Adobe Photoshop CS5
JavaScript Scripting Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5) ou
dans l’afficheur de modèles d’objets ExtendScript.
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 41
L’objet Text Item est une propriété de l’objet ArtLayer. Cependant, pour créer un calque de texte, vous
devez créer un objet ArtLayer puis définir la propriété kind/Kind/kind du calque graphique sur
text layer (2 (psTextLayer)/ LayerKind.TEXT ).
Pour définir ou manipuler du texte dans un calque de texte, vous utilisez l’objet text-object
(TextItem/TextItem), contenu dans la propriété text object/TextItem/textItem de l’objet ArtLayer.
AS make new art layer in current document with properties { kind: text layer }
Reportez-vous à la section « Modèle d’objet de Photoshop », page 11 pour plus de détails sur la relation
entre les objets ArtLayer et TextItem.
➤ Les propriétés kind et text object de la classe art layer dans le guide Adobe Photoshop CS5
AppleScript Scripting Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5)
ou dans le dictionnaire AppleScript de Photoshop.
Les exemples suivants utilisent une instruction if pour vérifier si un calque existant est un calque de texte.
JS if (newLayerRef.kind == LayerKind.TEXT)
{...}
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 42
Les exemples suivants ajoutent du texte et le justifient à droite dans un calque de texte.
AS set layerRef to make new art layer in current document with properties¬
{kind:text layer}
set contents of text object of layerRef to "Hello, World!"
set justification of text object of layerRef to right
REMARQUE : l’objet text-object (TextItem/TextItem) possède une propriété kind Kind/kind) qui peut
être définie soit sur point text (psPointText/TextType.POINTTEXT ), soit sur paragraph text
(psParagraphText/TextType.PARAGRAPHTEXT.). Lorsqu’un nouvel objet text-object est créé, sa
propriété kind est automatiquement définie sur point text.
Les propriétés height, width et leading de l’objet text-object sont autorisées uniquement si la
propriété kind du texte est définie sur paragraph text.
Pour vous familiariser avec les objets, propriétés et commandes présentés dans les guides de référence
pour les scripts, utilisez l’une des méthodes suivantes :
➤ Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript de Photoshop, recherchez les
propriétés et les méthodes text-object.
➤ Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual Basic, recherchez la propriété
TextItem de l’objet DisplayDialogs. Pour connaître les propriétés et méthodes disponibles avec un
calque de texte, recherchez l’objet TextItem.
Dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les scripts
JavaScript Adobe Photoshop CS5) ou dans l’afficheur de modèles d’objets ExtendScript, recherchez la
propriété textItem de l’objet ArtLayer. Pour connaître les propriétés et méthodes disponibles avec un
calque de texte, recherchez l’objet TextItem.
L’objet Selection est une propriété de l’objet Document. Recherchez les éléments suivants pour plus de détails :
➤ Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript de Photoshop, recherchez la
commande select. Recherchez également la propriété selection de l’objet Document et l’objet
selection-object.
➤ Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual Basic, recherchez Selection
comme propriété de l’objet Document. Recherchez également Select comme méthode de l’objet
Selection.
➤ Dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les scripts
JavaScript Adobe Photoshop CS5) ou dans l’afficheur de modèles d’objets ExtendScript, recherchez
selection comme propriété de l’objet Document. Recherchez également select comme méthode de
l’objet Selection.
REMARQUE : vous ne pouvez pas créer un objet Selection. La propriété selection
(Selection/selection) sur l’objet Document contient un objet selection préexistant pour le document.
Utilisez la commande select (Select/select) pour spécifier la zone de sélection.
2. Création d’une variable pour contenir les coordonnées de la zone sélectionnée (c.-à-d. l’objet Selection).
Les exemples ci-dessous utilisent la commande stroke (Stroke/stroke()) de l’objet Selection pour
tracer les bordures autour de la sélection active et définissent la couleur ainsi que la largeur du contour.
REMARQUE : le paramètre de transparence ne peut pas être utilisé pour les calques d’arrière-plan.
app.activeDocument.selection.stroke (strokeColor, 2,
StrokeLocation.OUTSIDE, ColorBlendMode.VIVIDLIGHT, 75,
false)
Vous pouvez appliquer la commande invert (Invert/invert()) de l’objet Selection à une sélection,
afin de pouvoir travailler sur le reste du document, calque ou couche tout en protégeant la sélection.
➤ VBS : selRef.Invert
➤ JS : selRef.invert()
Vous pouvez modifier la taille d’une zone sélectionnée à l’aide des commandes Dilater, Contracter et
Contour progressif.
Les valeurs sont transmises dans l’unité de mesure des règles stockée dans les préférences Photoshop et
peuvent être modifiées par vos scripts. Si l’unité de mesure des règles est le pixel, la valeur de la dilatation,
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 45
de la contraction et du contour progressif des exemples suivants sera de cinq pixels. Reportez-vous à la
section « Définition des préférences de l’application », page 32 pour savoir comment modifier l’unité de
mesure des règles.
AS expand selection of current document by pixels 5
contract selection of current document by pixels 5
feather selection of current document by pixels 5
selRef.Expand 5
selRef.Contract 5
selRef.Feather 5
JS selRef.fill(app.activeDocument.historyStates[9])
Pour restaurer une sélection enregistrée dans un objet Channel, utilisez la méthode load
(Load/load).
REMARQUE : les couches de composante sont liées au mode de document. Consultez l’Aide de Photoshop
pour plus de détails sur les couches, les types de couches et les modes de document.
CHAPITRE 3 : Scripts Photoshop Utilisation du modèle d’objet de Photoshop 47
JS channelRef.kind = ChannelType.SELECTEDAREA
Pour effectuer cette tâche dans un script, vous devez utiliser l’objet info-object
(DocumentInfo/DocumentInfo), stocké dans la propriété info (Info/info) de l’objet Document. Les
exemples suivants montrent comment utiliser l’objet DocumentInfo pour définir l’état du copyright et
l’URL propriétaire d’un document.
JS docInfoRef = docRef.info
docInfoRef.copyrighted = CopyrightedType.COPYRIGHTEDWORK
docInfoRef.ownerUrl = "http://www.adobe.com"
Recherchez les éléments suivants pour plus de détails sur les autres types d’informations (propriétés) que
vous pouvez associer à un document :
➤ Dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les scripts
AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript de Photoshop, recherchez les
propriétés et méthodes pour la classe info-object.
➤ Dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les scripts
Visual Basic Adobe Photoshop CS5), le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide
de référence pour les scripts JavaScript Adobe Photoshop CS5), l’explorateur d’objets Visual Basic ou
l’afficheur de modèles d’objets ExtendScript, recherchez les propriétés pour l’objet DocumentInfo.
JS docRef.activeHistoryState = docRef.historyStates[0]
REMARQUE : le rétablissement d’un état d’historique ne supprime pas les derniers états de la collection de
l’historique. Utilisez la commande Purge pour supprimer les derniers états de la collection
History States, comme indiqué ci-dessous :
➤ JS : app.purge(PurgeTarget.HISTORYCACHES)
L’exemple ci-dessous enregistre l’état actuel, applique un filtre et rétablit ensuite l’état d’historique enregistré.
AS set savedState to current history state of current document
filter current layer of current document using motion blur with options ¬
{class:motion blur, angle:20, radius:20}
set current history state of current document to savedState
JS savedState = docRef.activeHistoryState
docRef.artLayers[0].applyMotionBlur( 20, 20 )
docRef.activeHistoryState = savedState
REMARQUE : en règle générale, la notification ne s’applique pas aux événements à l’intérieur d’un script, car
ces événements sont incorporés dans un événement AdobeScriptAutomation Scripts.
AS
tell application "Adobe Photoshop CS5"
try
delete notifiers
end try
make new notifier with properties {event:"Opn ", ¬
event file:alias "OS X 10.5.8 US:Users:psauto:Desktop:Welcome.jsx"}
end tell
appRef.NotifiersEnabled = True
eventFile = appRef.Path & "Presets\Scripts\Event Scripts Only\Welcome.jsx"
appRef.Notifiers.Add "Opn ", eventFile
JS app.notifiersEnabled = true
var eventFile = new File(app.path +
"/Presets/Scripts/Event Scripts Only/Welcome.jsx")
app.notifiers.add("Opn ", eventFile)
AS --line #1--it’s a straight line so the coordinates for anchor, left, and
--right for each point have the same coordinates
tell application "Adobe Photoshop CS5"
set ruler units of settings to pixel units
set type units of settings to pixel units
set docRef to make new document with properties {height:700, width:500, ¬
name:"Snow Cone"}
'line #1--it’s a straight line so the coordinates for anchor, left, and
'right for each point have the same coordinates
'First create the array of PathPointInfo objects. The line has two points,
'so there are two PathPointInfo objects.
Set lineArray(0) = CreateObject("Photoshop.PathPointInfo")
lineArray(0).Kind = 2 ' for PsPointKind --> 2 (psCornerPoint)
lineArray(0).Anchor = Array(100, 100)
lineArray(0).LeftDirection = lineArray(0).Anchor
lineArray(0).RightDirection = lineArray(0).Anchor
Set lineArray(1) = CreateObject("Photoshop.PathPointInfo")
lineArray(1).Kind = 2
lineArray(1).Anchor = Array(150, 200)
lineArray(1).LeftDirection = lineArray(1).Anchor
lineArray(1).RightDirection = lineArray(1).Anchor
'Next create a SubPathInfo object, which will hold the line array
'in its EntireSubPath property.
Set lineSubPathArray(0) = CreateObject("Photoshop.SubPathInfo")
lineSubPathArray(0).Operation = 2 'for PsShapeOperation --> 2 (psShapeXOR)
lineSubPathArray(0).Closed = false
lineSubPathArray(0).EntireSubPath = lineArray
'create the PathItem object using Add. This method takes the SubPathInfo object
'and returns a PathItem object, which is added to the pathItems collection
'for the document.
Set myPathItem = docRef.PathItems.Add("A Line", lineSubPathArray)
//line #1--it’s a straight line so the coordinates for anchor, left, and //right
//for each point have the same coordinates
// First create the array of PathPointInfo objects. The line has two points,
// so there are two PathPointInfo objects.
var lineArray = new Array()
lineArray[0] = new PathPointInfo
lineArray[0].kind = PointKind.CORNERPOINT
lineArray[0].anchor = Array(100, 100)
lineArray[0].leftDirection = lineArray[0].anchor
lineArray[0].rightDirection = lineArray[0].anchor
lineArray[1] = new PathPointInfo
lineArray[1].kind = PointKind.CORNERPOINT
lineArray[1].anchor = Array(150, 200)
lineArray[1].leftDirection = lineArray[1].anchor
lineArray[1].rightDirection = lineArray[1].anchor
CHAPITRE 3 : Scripts Photoshop Utilisation des objets de couleur 51
//create the path item, using add. This method takes the SubPathInfo object
//and returns a PathItem object, which is added to the pathItems collection
// for the document.
var myPathItem = docRef.pathItems.add("A Line", lineSubPathArray);
En VBScript et JavaScript, la classe SolidColor contient une propriété pour chaque modèle
colorimétrique. Pour utiliser cet objet, vous devez dans un premier temps créer une instance d’un objet
SolidColor, puis définir les propriétés de modèle colorimétrique appropriées pour l’objet. Une fois qu’un
modèle colorimétrique a été attribué à un objet SolidColor, ce dernier ne peut plus être attribué à un
autre modèle colorimétrique.
Les exemples suivants montrent comment définir une couleur à l’aide de la classe CMYK color.
Les classes de couleur unie disponibles dans Photoshop sont exposées ci-dessous.
Classes de couleur
Solid
Color
Vous pouvez exprimer des valeurs RVB comme valeurs hexadécimales. Une valeur hexadécimale contient
trois paires de chiffres qui représentent le rouge, le bleu et le vert (dans cet ordre).
En AppleScript, la valeur hexadécimale est représentée par la propriété de chaîne hex value dans la classe
RGB hex color, et vous pouvez récupérer cette valeur hexadécimale à l’aide de la commande convert
color décrite ci-dessous.
AS Le script suivant, qui suppose un modèle colorimétrique RVB, récupère la couleur de premier plan, puis
utilise la commande convert de la classe color pour convertir la couleur en son équivalent CMJN.
get foreground color
convert color foreground color to CMYK
Recherchez les éléments suivants dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference
(Guide de référence pour les scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire
AppleScript de Photoshop.
VBS Le script suivant utilise une instruction If Then et la propriété model de l’objet SolidColor pour
déterminer le modèle de couleur utilisé. L’instruction If Then renvoie un objet SolidColor ; si elle renvoie
un objet RGB, la propriété cmyk de l’objet SolidColor vous permet alors d’accéder à la couleur avec son
équivalent CMJN.
Dim someColor
If (someColor.model = 2) Then
someColor.cmyk
'someColor.model = 2 indicates psColorModel --> 2 (psRGBModel)
End If
CHAPITRE 3 : Scripts Photoshop Utilisation de filtres 53
Recherchez les éléments suivants dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide
de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual Basic :
JS Cet exemple utilise la propriété foregroundColor de l’objet Application pour obtenir la couleur
d’origine à convertir. La propriété cmyk de l’objet SolidColor à laquelle la propriété foregroundColor fait
référence fournit une méthode d’accès à l’équivalent CMJN de la couleur RVB.
var someColor = foregroundColor.cmyk
Recherchez les éléments suivants dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide
de référence pour les scripts JavaScript Adobe Photoshop CS5) ou dans l’afficheur de modèles d’objets
ExtendScript.
➤ JS : if (app.foregroundColor.isEqual(backgroundColor))
Utilisation de filtres
Pour appliquer un filtre en AppleScript, vous utilisez la commande filter avec une option de la classe
filter options. En VBScript et JavaScript, vous devez utiliser une méthode de filtrage spécifique. Par
exemple, pour appliquer un filtre Flou gaussien, vous devez utiliser la méthode
ApplyGaussianBlur/applyGaussianBlur(). Toutes les méthodes de filtrage appartiennent à l’objet
ArtLayer.
REMARQUE : pour plus de détails sur les effets produits par des types de filtre individuels, consultez l’Aide
de Photoshop.
AS Utilisez la commande filter, puis spécifiez le calque et le nom du filtre (et les options, le cas échéant).
filter current layer of current document using gaussian blur ¬
with options {radius:5}
REMARQUE : dans le guide Adobe Photoshop CS5 AppleScript Scripting Reference (Guide de référence pour les
scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire AppleScript de Photoshop, recherchez
la commande filter ainsi que la classe filter options.
VBS appRef.docRef.ActiveLayer.ApplyGaussianBlur 5
REMARQUE : dans le guide Adobe Photoshop CS5 Visual Basic Scripting Reference (Guide de référence pour les
scripts Visual Basic Adobe Photoshop CS5) ou dans l’explorateur d’objets Visual Basic, recherchez la méthode
ApplyGaussianBlur et d’autres méthodes de l’objet ArtLayer dont le nom commence par « Apply ».
JS docRef.activeLayer.applyGaussianBlur(5)
REMARQUE : dans le guide Adobe Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les
scripts JavaScript Adobe Photoshop CS5) ou dans l’afficheur de modèles d’objets ExtendScript, recherchez
la méthode applyGaussianBlur() et d’autres méthodes de l’objet artLayer dont le nom commence
par « apply ».
Filtres divers
Si le type de filtre à utiliser sur le calque ne fait pas partie de l’interface de scripts, vous pouvez utiliser le
gestionnaire de scripts à partir d’un script JavaScript pour exécuter un filtre. Si vous utilisez AppleScript ou
VBScript, vous pouvez exécuter le script JavaScript depuis votre script. Pour plus de détails sur l’utilisation
du gestionnaire de scripts, reportez-vous à la section « Gestionnaire de scripts », page 73, ainsi qu’à la
section « Exécution de scripts JavaScript à partir d’AS ou de VBS », page 10.
➤ copy (Copy/copy)
➤ cut(Cut/cut)
REMARQUE : pour plus de détails sur les fonctions Copier, Copier avec fusion, Coller, Coller dedans et
Couper, consultez l’Aide de Photoshop.
REMARQUE : si le script crée un document dans lequel vous collez le contenu du Presse-papiers,
assurez-vous que le document utilise la même unité de mesure que celle du document d’origine (voir la
section « Définition des préférences de l’application », page 32).
AS REMARQUE : sous Mac OS, Photoshop doit être l’application de premier plan lors de l’exécution de ces
commandes. Vous devez utiliser la commande activate pour activer l’application avant d’exécuter les
commandes du Presse-papiers.
tell application "Adobe Photoshop CS5"
activate
select all of current document
copy
set current layer of current document to layer "Background" ¬
of current document
set newDocRef to make new document
paste newDocRef
end tell
Recherchez la méthode Copy pour les objets ArtLayer et Selection dans le guide Adobe Photoshop CS5
Visual Basic Scripting Reference (Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou
dans l’explorateur d’objets Visual Basic.
JS docRef.selection.copy(true)
Recherchez la méthode Copy() pour les objets ArtLayer et Selection dans le guide Adobe
Photoshop CS5 JavaScript Scripting Reference (Guide de référence pour les scripts JavaScript Adobe
Photoshop CS5) ou dans l’afficheur de modèles d’objets ExtendScript.
CHAPITRE 3 : Scripts Photoshop Utilisation des unités 56
REMARQUE : ces paramètres correspondent à ceux figurant dans la boîte de dialogue Préférences de
Photoshop sous Photoshop > Préférences > Unités et règles sous Mac OS ou Edition > Préférences >
Unités et règles sous Windows.
Valeurs d’unité
Tous les langages prennent en charge les chiffres entiers pour les valeurs d’unité. Ces valeurs sont traitées
comme étant du type actuellement spécifié pour la règle appropriée.
Par exemple, si l’unité de la règle est définie en pouces, l’instruction VBScript suivante définit la taille d’un
document sur 3 x 3 pouces :
docRef.ResizeImage 3,3
Si l’unité de la règle est définie sur pixels, le document sera de 3 x 3 pixels. Assurez-vous de définir l’unité
de la règle en fonction de votre script, afin d’obtenir les résultats escomptés lors de l’exécution du script.
Une fois le script exécuté, vous devez rétablir les paramètres d’origine de la règle s’ils ont été modifiés dans
le script. Reportez-vous à la section « Définition des unités de règle et de texte dans un script », page 59
pour obtenir des explications sur la définition des unités.
Pour plus de détails sur les types de valeurs d’unité disponibles, consultez l’Aide de Photoshop.
Par exemple, pour créer un document de 4 pouces de large sur 5 pouces de haut, vous pouvez écrire :
make new document with properties {width:inches 4, ¬
height:inches 5}
CHAPITRE 3 : Scripts Photoshop Utilisation des unités 57
La valeur renvoyée pour une propriété Photoshop qui utilise des unités est renvoyée comme valeur du
type de règle sélectionné. Obtention de la hauteur du document créé ci-dessus :
set docHeight to height of current document
renvoie une valeur de 5, ce qui représente 5 pouces d’après les paramètres actuels de la règle.
En AppleScript, vous pouvez également demander le renvoi d’une valeur de propriété exprimée dans un
type d’unité particulier.
set docHeight to height of current document as points
Les types d’unités points et picas sont des points PostScript, de 72 ppp. Les types d’unité traditional
points et traditional picas reposent sur des valeurs classiques de définition de texte, de 72,27 points
par pouce.
Vous pouvez convertir, ou faire passer, une valeur d’un type à un autre. Par exemple, le script suivant
convertit une valeur en points en une valeur en pouces.
set pointValue to 72 as points
set inchValue to pointValue as inches
Lorsque ce script est exécuté, la variable inchValue contient 1 pouce, soit 72 points convertis en pouces.
Cette capacité de conversion est intégrée au langage AppleScript.
REMARQUE : les valeurs cm units et mm units ne peuvent pas être utilisées de cette manière avec une référence
correspondante en cm ou mm. Ces types d’unités ne sont pas reconnus par la terminologie AppleScript.
REMARQUE : en AppleScript, vous pouvez récupérer et définir des valeurs en pixels ou en pourcentage, tout
comme vous le faites avec les autres types d’unités. Cependant, vous ne pouvez pas convertir une valeur
en pixels ou en pourcentage dans une autre unité de longueur comme vous le feriez avec tout autre type
de valeur de longueur. Ainsi, l’exécution du script suivant entraînerait une erreur :
set pixelValue to 72 as pixels
-- Next line will result in a coercion error when run
set inchValue to pixelValue as inches
REMARQUE : du fait que Photoshop est une application orientée pixel, il se peut que vous ne puissiez pas
retrouver toujours la même valeur que celle que vous transmettez lors de la définition d’une valeur. Par
exemple, si ruler units est défini sur les unités mm et que vous créez un document de 30 x 30, la valeur
renvoyée pour la hauteur ou la largeur sera 29,99 si la résolution de votre document est définie sur 72 ppp.
L’interface de scripts suppose que les paramètres sont mesurés en ppp.
VBS En VBScript, RulerUnits et TypeUnits sont des propriétés de l’objet Preferences, accessibles via la
propriété Preferences de l’objet Application, comme illustré ci-dessous.
appRef.Preferences.RulerUnits = 2 'for PsUnits --> 1 (psInches)
appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels)
appRef.Preferences.PointSize = 2
'2 indicates psPointType --> 2 (PsPostScriptPoints)
JS En JavaScript, rulerUnits et typeUnits sont des propriétés de l’objet Preferences, accessibles via la
propriété Preferences de l’objet Application, comme illustré ci-dessous.
app.preferences.rulerUnits = Units.INCHES
app.preferences.typeUnits = TypeUnits.PIXELS
app.preferences.pointSize = PointType.POSTSCRIPT
REMARQUE : pensez à rétablir les paramètres d’unité initiaux lorsque le script a été exécuté. Reportez-vous à
la section « Utilisation des préférences de document », page 61 pour obtenir un exemple de réalisation.
CHAPITRE 3 : Scripts Photoshop Exemples de scripts JavaScript pour l’automatisation d’un flux de production 60
➤ Application de couleur au texte. Dans cette section, vous apprendrez également à effectuer les
opérations suivantes :
➤ Pixellisez le texte de sorte que les options Onde et Flou soient appliquées aux mots. Dans ces sections,
vous apprendrez en outre à effectuer les opérations suivantes :
➣ Sélection et utilisation d’une zone spécifique d’un calque via la création d’un objet sélection.
REMARQUE : enregistrez le script que vous avez créé à la fin de chaque leçon des sections suivantes ;
chaque leçon se sert du script créé dans la leçon précédente.
CHAPITRE 3 : Scripts Photoshop Programmation avancée de scripts 61
REMARQUE : les modes de boîte de dialogue ne sont pas une option dans
l’application Photoshop.
Ensuite, des variables sont déclarées pour stocker les dimensions du document en pouces et la résolution
du document en pixels. Puis, une résolution d’affichage est déclarée et le texte « Hello, World! » est attribué
à une variable de type chaîne.
Ensuite, une instruction if vérifie si un objet Document a été créé, puis crée un objet Document s’il n’en
existe aucun.
Enfin, les préférences d’origine sont rétablies.
AS Pour utiliser les préférences de document :
1. Créez et exécutez le script suivant (voir la section « Création et exécution d’un script AppleScript »,
page 18 pour plus de détails).
tell application "Adobe Photoshop CS5"
--make Photoshop CS5 the active (front-most) application
activate
--change the settings back to the original units stored in the variables
set ruler units of settings to theStartRulerUnits
set type units of settings to theStartTypeUnits
set display dialogs to theStartDisplayDialogs
end tell
2. Dans Photoshop, choisissez Photoshop > Préférences > Unités et règles pour vérifier que les
paramètres d’origine de vos préférences ont été rétablis.
1. Créez le script suivant (voir la section « Création et exécution d’un script VBScript », page 19 pour plus
de détails).
'create variables for default preferences, new preferences
Dim startRulerUnits
Dim startTypeUnits
Dim docWidthInInches
Dim docHeightInInches
Dim resolution
Dim helloWorldStr
Dim appRef
2. Dans Photoshop, choisissez Edition > Préférences > Unités et règles pour vérifier que les
paramètres d’origine de vos préférences ont été rétablis.
REMARQUE : reportez-vous à la section « Création et exécution d’un script JavaScript », page 19 pour
plus de détails sur la création d’un script JavaScript.
//create and assign variables for default preferences
startRulerUnits = app.preferences.rulerUnits
startTypeUnits = app.preferences.typeUnits
startDisplayDialogs = app.displayDialogs
//change settings
app.preferences.rulerUnits = Units.INCHES
app.preferences.typeUnits = TypeUnits.PIXELS
app.displayDialogs = DialogModes.NO
3. Ouvrez Photoshop, puis choisissez Fichier > Scripts > HelloWorldDoc pour exécuter le script.
4. Choisissez la commande Edition > Préférences > Unités et règles pour vérifier que les paramètres
d’origine des préférences ont bien été rétablis.
6. Enregistrez le script.
CHAPITRE 3 : Scripts Photoshop Programmation avancée de scripts 64
1. Entrez le code suivant dans le script HelloWorldDoc immédiatement avant les instructions (à la fin du
fichier) qui rétablissent les préférences d’origine.
--create a variable named theDocRef
--assign the current (active) document to it
set theDocRef to the current document
--create a variable that contains a color object of the RGB color class
--whose color is red
set theTextColor to {class:RGB color, red:255, green:0, blue:0}
--create a variable for the text layer, create the layer as an art layer object
--and use the kind property of the art layer object to make it a text layer
set theTextLayer to make new art layer in theDocRef with ¬
properties {kind:text layer}
--Set the contents, size, position and color of the text layer
set contents of text object of theTextLayer to "Hello, World!"
set size of text object of theTextLayer to 36
set position of text object of theTextLayer to {0.75 as inches, 1 as inches}
set stroke color of text object of theTextLayer to theTextColor
2. Exécutez le script complet. Patientez pendant que Photoshop exécute vos commandes une par une.
REMARQUE : recherchez les classes suivantes dans le guide Adobe Photoshop CS5 AppleScript Scripting
Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire
AppleScript de Photoshop pour vous assurer que vous comprenez comment vous les avez utilisées dans
ce script :
1. Entrez le code suivant dans le script HelloWorldDoc immédiatement avant les instructions (à la fin du
fichier) qui rétablissent les préférences d’origine.
'create a reference to the active (current) document
Set docRef = appRef.ActiveDocument
2. Exécutez le script complet. Patientez pendant que Photoshop exécute vos commandes une par une.
REMARQUE : recherchez les classes suivantes dans le guide Adobe Photoshop CS5 Visual Basic Scripting
Reference (Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans l’explorateur
d’objets Visual Basic pour vous assurer que vous comprenez comment vous les avez utilisées dans ce
script :
➤ SolidColor
➤ ArtLayer
CHAPITRE 3 : Scripts Photoshop Programmation avancée de scripts 66
//use the kind property of the artLayer class to make the layer a text layer
newTextLayer.kind = LayerKind.TEXT
newTextLayer.textItem.contents = helloWorldText
newTextLayer.textItem.position = Array(0.75, 1)
newTextLayer.textItem.size = 36
newTextLayer.textItem.color = textColor
2. Enregistrez le script, ouvrez ensuite Photoshop, puis sélectionnez le script dans le menu Scripts
(choisissez Fichier > Script > HelloWorldDoc). Patientez pendant que Photoshop exécute vos
commandes une par une.
3. Après avoir visualisé le document dans Photoshop, fermez l’application sans enregistrer le document.
REMARQUE : recherchez les classes suivantes dans le guide Adobe Photoshop CS5 JavaScript Scripting
Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5) ou dans l’afficheur de
modèles d’objets ExtendScript pour vous assurer que vous comprenez comment vous les avez utilisées
dans ce script :
➤ SolidColor
➤ ArtLayer. Vous pouvez constater que la valeur LayerKind.TEXT de la propriété kind utilise la
constante LayerKind. Les constantes sont toujours représentées en majuscules dans les scripts
JavaScript Photoshop.
➤ Définissez la largeur et la hauteur du document en pixels, puis pixellisez l’objet texte dans le calque de
texte.
REMARQUE : le texte étant un graphique vectoriel auquel il est impossible d’appliquer un filtre Onde, il
convient dans un premier temps de convertir l’image en bitmap. La pixellisation convertit les images
vectorielles définies mathématiquement en pixels. Pour plus de détails sur la pixellisation, consultez
l’Aide de Photoshop.
CHAPITRE 3 : Scripts Photoshop Programmation avancée de scripts 67
REMARQUE : reportez-vous à la section « Définition de la zone d’un objet de sélection », page 67 pour
vous familiariser avec le code du script effectuant cette tâche.
1. Entrez le code suivant dans le fichier de script HelloWorldDoc immédiatement avant les instructions
rétablissant les préférences d’origine :
--create new variables to contain the document object’s width and height
--determine width and height values by multiplying the
--width and height in inches by the resolution
--(which equals the number of pixels per inch)
set theDocWidthInPixels to theDocWidthInInches * theDocResolution
set theDocHeightInPixels to theDocHeightInInches * theDocResolution
REMARQUE : recherchez les classes suivantes dans le guide Adobe Photoshop CS5 AppleScript Scripting
Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire
AppleScript de Photoshop pour vous assurer que vous comprenez comment vous les avez utilisées dans
ce script :
1. Entrez le code suivant dans le fichier de script HelloWorldDoc immédiatement avant les instructions
(à la fin du fichier) qui rétablissent les préférences d’origine :
'create new variables to contain doc width and height
'convert inches to pixels by multiplying the number of inches by
'the resolution (which equals number of pixels per inch)
docWidthInPixels = docWidthInInches * resolution
docHeightInPixels = docHeightInInches * resolution
2. Cliquez deux fois sur le nom du fichier dans l’Explorateur de Windows pour exécuter le script.
4. Enregistrez le script.
REMARQUE : recherchez les classes suivantes dans le guide Adobe Photoshop CS5 Visual Basic Scripting
Reference (Guide de référence pour les scripts Visual Basic Adobe Photoshop CS5) ou dans l’explorateur
d’objets Visual Basic pour vous assurer que vous comprenez comment vous les avez utilisées dans ce
script :
1. Entrez le code suivant dans le fichier de script HelloWorldDoc immédiatement avant les instructions
rétablissant les préférences d’origine :
//create new variables to contain doc width and height
//convert inches to pixels by multiplying the number of inches by
//the resolution (which equals number of pixels per inch)
docWidthInPixels = docWidthInInches * resolution
docHeightInPixels = docHeightInInches * resolution
//use the rasterize method of the artLayer class
newTextLayer.rasterize(RasterizeType.TEXTCONTENTS)
2. Enregistrez le script, ouvrez ensuite Photoshop, puis sélectionnez le script dans le menu Scripts
(choisissez Fichier > Script > HelloWorldDoc).
3. Après avoir visualisé le document dans Photoshop, fermez l’application sans enregistrer le document.
REMARQUE : recherchez les classes suivantes dans le guide Adobe Photoshop CS5 JavaScript Scripting
Reference (Guide de référence pour les scripts JavaScript Adobe Photoshop CS5) ou dans l’afficheur de
modèles d’objets ExtendScript pour vous assurer que vous comprenez comment vous les avez utilisées
dans ce script :
➤ Méthode ArtLayer
➣ Méthode applyWave()
CHAPITRE 3 : Scripts Photoshop Programmation avancée de scripts 71
1. Entrez le code suivant dans le fichier de script HelloWorldDoc immédiatement avant les instructions
rétablissant les préférences d’origine :
--change the value of the variable theSelRegion
--to contain the opposite half of the screen
set theSelRegion to {{theDocWidthInPixels / 2, 0},¬
{theDocWidthInPixels, 0}, ¬
{theDocWidthInPixels, theDocHeightInPixels}, ¬
{theDocWidthInPixels / 2, theDocHeightInPixels}, ¬
{theDocWidthInPixels / 2, 0}}
REMARQUE : recherchez la classe motion blur dans le guide Adobe Photoshop CS5 AppleScript Scripting
Reference (Guide de référence pour les scripts AppleScript Adobe Photoshop CS5) ou dans le dictionnaire
AppleScript de Photoshop pour vous assurer que vous comprenez comment vous l’avez utilisée dans ce
script :
1. Entrez le code suivant dans le fichier de script HelloWorldDoc immédiatement avant les instructions
rétablissant les préférences d’origine :
docRef.Selection.Select Array(Array(docWidthInPixels / 2, 0), _
Array(docWidthInPixels, 0), _
Array(docWidthInPixels, docHeightInPixels), _
Array(docWidthInPixels / 2, docHeightInPixels), _
Array(docWidthInPixels / 2, 0))
newTextLayer.ApplyMotionBlur 45, 5
docRef.Selection.Deselect
2. Cliquez deux fois sur ce fichier dans l’Explorateur de Windows pour exécuter le script.
1. Entrez le code suivant dans le fichier de script HelloWorldDoc immédiatement avant les instructions
rétablissant les préférences d’origine :
//change the value of selRegion to the other half of the document
selRegion = Array(Array(docWidthInPixels / 2, 0),
Array(docWidthInPixels, 0),
Array(docWidthInPixels, docHeightInPixels),
Array(docWidthInPixels / 2, docHeightInPixels),
Array(docWidthInPixels / 2, 0))
docRef.selection.select(selRegion)
newTextLayer.applyMotionBlur(45, 5)
docRef.selection.deselect()
2. Enregistrez le script, ouvrez ensuite Photoshop, puis sélectionnez le script dans le menu Scripts
(choisissez Fichier > Script > HelloWorldDoc).
Les scripts Photoshop vous permettent de gagner du temps en automatisant des tâches répétitives. Vous
pouvez créer et exécuter des scripts dans l’interface de l’application à l’aide du panneau Scripts.
Il est également possible de gérer des actions dans des scripts à l’aide d’un utilitaire appelé Gestionnaire de
scripts. Le gestionnaire de scripts vous permet d’écrire des scripts qui ciblent la fonctionnalité Photoshop
sinon inaccessible dans l’interface de scripts, tels que des modules externes et filtres tiers. Pour pouvoir
utiliser le gestionnaire de scripts, la tâche à laquelle vous souhaitez accéder via le gestionnaire de scripts
doit être enregistrable.
Ce chapitre explique comment utiliser le gestionnaire de scripts et les objets d’interface de scripts qui lui
sont associés.
3. Ouvrez Photoshop.
REMARQUE : si Photoshop est déjà ouvert, fermez-le puis relancez-le. Cette opération permet à
Photoshop de charger le module externe.
73
CHAPITRE 4 : Gestionnaire de scripts Objets du gestionnaire de scripts 74
1. Fermez Photoshop.
2. Vérifiez qu’une copie du fichier ScriptListener.8li existe déjà dans le dossier ..\Adobe Photoshop
CS5\Scripting\Utilities.
REMARQUE : sous Windows, l’écouteur de scripts peut continuer à enregistrer les actions même après avoir
été retiré du dossier Automatisation. Pour empêcher le fichier ScriptingListenerJS.log de devenir trop
volumineux, supprimez-le à chaque fois que vous finissez d’exécuter un script Photoshop.
REMARQUE : vous devez avoir installé le module externe Ecouteur de scripts dans le dossier
Automatisation avant de commencer la procédure suivante (voir la section « Installation de l’écouteur de
scripts », page 73).
➣ Angle : 135
➣ Hauteur : 3
➣ Facteur : 100
Les procédures décrites dans cette section utilisent le gestionnaire de scripts pour rendre le filtre
Estampage disponible dans l’interface de scripts.
Un code similaire à l’exemple ci-dessous apparaît à la fin du fichier (les nombres peuvent toutefois
différer) :
var id19 = charIDToTypeID( "Embs" );
var desc4 = new ActionDescriptor();
var id20 = charIDToTypeID( "Angl" );
desc4.putInteger( id20, 135 );
var id21 = charIDToTypeID( "Hght" );
desc4.putInteger( id21, 3 );
var id22 = charIDToTypeID( "Amnt" );
desc4.putInteger( id22, 100 );
executeAction( id19, desc4 ,DialogModes.NO);
REMARQUE : l’écouteur de scripts sépare les commandes consignées par des lignes horizontales
composées de signes égal (=====...). Si l’action la plus récente n’est pas la première action enregistrée
dans le fichier d’historique, elle se trouve à la suite de la dernière ligne de signes égal et est ainsi
facilement identifiable.
3. Dans le script emboss.jsx, identifiez les valeurs que vous avez utilisées avec le filtre (135, 3 et 100).
Remplacez les valeurs de filtre spécifiées par des noms de variables.
Dans l’exemple suivant, la valeur 135 a été remplacée par angle, 3 par height et 100 par amount.
var id19 = charIDToTypeID( "Embs" );
var desc4 = new ActionDescriptor();
var id20 = charIDToTypeID( "Angl" );
desc4.putInteger( id20, angle );
var id21 = charIDToTypeID( "Hght" );
desc4.putInteger( id21, height );
var id22 = charIDToTypeID( "Amnt" );
desc7.putInteger( id22, amount );
executeAction( id19, desc4,DialogModes.NO );
CHAPITRE 4 : Gestionnaire de scripts Utilisation du gestionnaire de scripts à partir d’un script VBS 76
4. Incluez le code dans une fonction JavaScript. La fonction utilisée dans l’exemple suivant est
appelée emboss.
function emboss( angle, height, amount )
{
var id19 = charIDToTypeID( "Embs" );
var desc4 = new ActionDescriptor();
var id20 = charIDToTypeID( "Angl" );
desc4.putInteger( id20, angle );
var id21 = charIDToTypeID( "Hght" );
desc4.putInteger( id21, height );
var id22 = charIDToTypeID( "Amnt" );
desc7.putInteger( id22, amount );
executeAction( id19, desc4 ,DialogModes.NO);
}
5. Pour appliquer un filtre Estampage à un document à l’aide d’un script JavaScript, incluez la fonction
emboss dans le script JavaScript et appelez cette fonction avec les paramètres souhaités. L’exemple
suivant applique le filtre Estampage avec un angle de 75, une hauteur de 2 et un facteur de 89 (voir la
section « Ouverture d’un document », page 28 pour obtenir de l’aide sur l’écriture de code permettant
d’ouvrir un document dans le script).
// Open the document in the script
var fileRef = new File("/c/myfile")
var docRef = app.open(fileRef)
6. Ouvrez Photoshop, pour appliquer le filtre Estampage en sélectionnant Fichier > Scripts > Parcourir,
puis en sélectionnant l’emplacement de votre script emboss.jsx. Sélectionnez la commande Charger
pour exécuter le script.
Les procédures décrites dans cette section utilisent le gestionnaire de scripts pour rendre le filtre
Estampage disponible dans l’interface de scripts.
CHAPITRE 4 : Gestionnaire de scripts Utilisation du gestionnaire de scripts à partir d’un script VBS 77
Un code similaire à l’exemple ci-dessous apparaît à la fin du fichier (les nombres peuvent toutefois
différer) :
DIM objApp
SET objApp = CreateObject("Photoshop.Application")
REM Use dialog mode 3 for show no dialogs
DIM dialogMode
dialogMode = 3
DIM id9
id9 = objApp.CharIDToTypeID( "Embs" )
DIM desc4
SET desc4 = CreateObject( "Photoshop.ActionDescriptor" )
DIM id10
id10 = objApp.CharIDToTypeID( "Angl" )
Call desc4.PutInteger( id10, 135 )
DIM id11
id11 = objApp.CharIDToTypeID( "Hght" )
Call desc4.PutInteger( id11, 3 )
DIM id12
id12 = objApp.CharIDToTypeID( "Amnt" )
Call desc4.PutInteger( id12, 100 )
Call objApp.ExecuteAction( id9, desc4, dialogMode )
REMARQUE : l’écouteur de scripts sépare les commandes consignées par des lignes horizontales
composées de signes égal (====...). Si l’action la plus récente n’est pas la première action enregistrée
dans le fichier d’historique, elle se trouve à la suite de la dernière ligne de signes égal et est ainsi
facilement identifiable.
3. Dans le script emboss.vbs, identifiez les valeurs que vous avez utilisées avec le filtre (135, 3 et 100).
Remplacez les valeurs de filtre spécifiées par des noms de variables.
Dans l’exemple suivant, 135 a été remplacé par angle, 3 par height et 100 par amount.
DIM objApp
SET objApp = CreateObject("Photoshop.Application")
REM Use dialog mode 3 for show no dialogs
DIM dialogMode
dialogMode = 3
DIM id9
id9 = objApp.CharIDToTypeID( "Embs" )
DIM desc4
SET desc4 = CreateObject( "Photoshop.ActionDescriptor" )
DIM id10
id10 = objApp.CharIDToTypeID( "Angl" )
Call desc4.PutInteger( id10, angle)
DIM id11
id11 = objApp.CharIDToTypeID( "Hght" )
Call desc4.PutInteger( id11, height )
DIM id12
id12 = objApp.CharIDToTypeID( "Amnt" )
Call desc4.PutInteger( id12, amount )
Call objApp.ExecuteAction( id9, desc4, dialogMode )
CHAPITRE 4 : Gestionnaire de scripts Utilisation du gestionnaire de scripts à partir d’un script VBS 78
4. Incluez le code dans une fonction VBScript. La fonction utilisée dans l’exemple suivant est
appelée Emboss. La création de l’objet d’application Photoshop doit être à l’extérieur de la fonction,
comme nous l’expliquerons à la prochaine étape.
DIM objApp
SET objApp = CreateObject("Photoshop.Application")
5. Pour appliquer le filtre Estampage à un document à l’aide d’un script VBScript, incluez la fonction
emboss dans le script et appelez cette fonction avec les paramètres souhaités. L’exemple suivant
applique le filtre Estampage avec un angle de 75, une hauteur de 2 et un facteur de 89. Avant que le
script n’appelle la fonction, il doit ouvrir un document (voir la section « Ouverture d’un document »,
page 28 pour obtenir de l’aide sur l’écriture de code permettant d’ouvrir un document dans le script).
Pour cela, le script doit accéder aux modèles d’objets de document (DOM) Photoshop lorsqu’il
appelle la méthode Application.Open. Le script doit donc préalablement créer l’objet
Photoshop.Application avant d’ouvrir un nouveau document.
DIM objApp
SET objApp = CreateObject("Photoshop.Application")
6. Appliquez le du filtre Estampage en cliquant deux fois sur le fichier emboss.vbs. Cette opération lance
Photoshop, ouvre le fichier et applique le filtre Estampage au fichier.
1. Suivez les étapes 1 à 4 de la section « Utilisation du gestionnaire de scripts à partir d’un
script JavaScript », page 75. Vous obtiendrez un fichier (emboss.jsx) contenant le code JavaScript
suivant :
function emboss( angle, height, amount )
{
var id32 = charIDToTypeID( "Embs" );
var desc7 = new ActionDescriptor();
var id33 = charIDToTypeID( "Angl" );
desc7.putInteger( id33, angle );
var id34 = charIDToTypeID( "Hght" );
desc7.putInteger( id34, height );
var id35 = charIDToTypeID( "Amnt" );
desc7.putInteger( id35, amount );
executeAction( id32, desc7 );
}
2. A la fin du fichier emboss.jsx, ajoutez la ligne de code JavaScript suivante pour exécuter la fonction
emboss en lui transmettant des arguments à partir d’un appel externe. Reportez-vous au guide
Introduction to Scripting (Introduction aux scripts) pour plus de détails sur la transmission d’arguments
d’un script VBScript à un script JavaScript.
// Call emboss with values provided in the "arguments" collection
emboss( arguments[0], arguments[1], arguments[2] );
CHAPITRE 4 : Gestionnaire de scripts Exécution de code du gestionnaire de scripts JavaScript à partir d’un script AppleScript 80
3. A partir d’un script VBScript, vous pouvez exécuter le filtre Estampage comme suit (cet exemple
suppose que le fichier emboss.jsx se trouve sur le lecteur C:\) :
Set objApp = CreateObject("Photoshop.Application")
1. Suivez les étapes 1 à 4 de la section « Utilisation du gestionnaire de scripts à partir d’un
script JavaScript », page 75. Vous obtiendrez un fichier (emboss.jsx) contenant le code JavaScript
suivant :
function emboss( angle, height, amount )
{
var id32 = charIDToTypeID( "Embs" );
var desc7 = new ActionDescriptor();
var id33 = charIDToTypeID( "Angl" );
desc7.putInteger( id33, angle );
var id34 = charIDToTypeID( "Hght" );
desc7.putInteger( id34, height );
var id35 = charIDToTypeID( "Amnt" );
desc7.putInteger( id35, amount );
executeAction( id32, desc7 );
}
2. A la fin du fichier emboss.jsx, ajoutez la ligne de code JavaScript suivante pour exécuter la fonction
emboss en lui transmettant des arguments à partir d’un appel externe. Reportez-vous au guide
Introduction to Scripting (Introduction aux scripts) pour plus de détails sur la transmission d’arguments
d’un script AppleScript à un script JavaScript.
// Call emboss with values provided in the "arguments" collection
emboss( arguments[0], arguments[1], arguments[2] );
Vous pouvez déterminer l’ID d’événement de toutes les actions enregistrables en utilisant l’écouteur de
scripts. Il vous suffit pour cela d’installer le module externe Ecouteur de scripts comme indiqué à la section
« Installation de l’écouteur de scripts », page 73. Exécutez ensuite l’action pour laquelle vous souhaitez
rechercher l’ID d’événement. L’événement est alors consigné dans le fichier d’historique de l’écouteur de
scripts (voir la section « Module externe Ecouteur de scripts », page 73). Si l’événement s’applique à
plusieurs classes d’objets, l’ID de classe est également consigné dans le fichier d’historique.
Les exemples suivants montrent comment rechercher l’ID de l’événement Open Document (Ouvrir le
document) et les ID d’événements et de classes de l’événement New (Nouveau), qui s’applique à plusieurs
classes.
3. Recherchez le fichier d’historique de l’écouteur de scripts et ouvrez-le. Vous pouvez utiliser le fichier
d’historique VBScript ou JavaScript. Dans la version JavaScript du fichier, un code similaire à l’exemple
ci-dessous apparaît à la fin du fichier (tous les éléments situés sous la ligne composée de signes égal
correspondent à la dernière action effectuée) :
// =======================================================
var id14 = charIDToTypeID( "Opn " );
var desc5 = new ActionDescriptor();
var id15 = charIDToTypeID( "null" );
desc5.putPath( id15, new File( "C:\\Program Files\\Adobe\\Adobe Photoshop CS5\\
Samples\\Fish.psd" ) );
executeAction( id14, desc5, DialogModes.NO );
4. La méthode executeAction exécute l’action à partir d’un script et requiert l’ID d’événement pour
identifier l’action à effectuer. Le premier argument, dans ce cas id14, fournit l’ID d’événement à la
méthode. Vous pouvez constater que la variable id14 est définie quelques lignes plus haut, et que l’ID
d’événement de l’action Open Document est "Opn ".
5. Vous pouvez désormais utiliser cet ID d’événement pour configurer une notification d’événement
pour l’événement Open Document à partir de vos scripts. Par exemple, dans JavaScript :
var eventFile = new File(app.path +
"/Presets/Scripts/Event Scripts Only/Welcome.jsx")
app.notifiers.add( "Opn ", eventFile)
3. Créez ensuite une nouvelle couche en cliquant sur l’icône Créer une couche dans le panneau Couches.
CHAPITRE 4 : Gestionnaire de scripts Utilisation de l’écouteur de scripts pour rechercher des ID d’événements et de classes 82
4. Recherchez le fichier d’historique de l’écouteur de scripts et ouvrez-le. Vous pouvez utiliser le fichier
d’historique VBScript ou JavaScript. Comme nous avons enregistré deux actions, nous recherchons les
deux dernières sections du fichier, qui sont délimitées par les lignes de signes égal. Dans le fichier
historique JavaScript, un code similaire à l’exemple ci-dessous apparaît en fin de fichier :
// =======================================================
var id17 = charIDToTypeID( "Mk " );
var desc6 = new ActionDescriptor();
var id18 = charIDToTypeID( "Nw " );
var desc7 = new ActionDescriptor();
var id19 = charIDToTypeID( "Md " );
var id20 = charIDToTypeID( "RGBM" );
desc7.putClass( id19, id20 );
var id21 = charIDToTypeID( "Wdth" );
var id22 = charIDToTypeID( "#Rlt" );
desc7.putUnitDouble( id21, id22, 800.000000 );
var id23 = charIDToTypeID( "Hght" );
var id24 = charIDToTypeID( "#Rlt" );
desc7.putUnitDouble( id23, id24, 800.000000 );
var id25 = charIDToTypeID( "Rslt" );
var id26 = charIDToTypeID( "#Rsl" );
desc7.putUnitDouble( id25, id26, 72.000000 );
var id27 = stringIDToTypeID( "pixelScaleFactor" );
desc7.putDouble( id27, 1.000000 );
var id28 = charIDToTypeID( "Fl " );
var id29 = charIDToTypeID( "Fl " );
var id30 = charIDToTypeID( "Wht " );
desc7.putEnumerated( id28, id29, id30 );
var id31 = charIDToTypeID( "Dpth" );
desc7.putInteger( id31, 8 );
var id32 = stringIDToTypeID( "profile" );
desc7.putString( id32, "sRGB IEC61966-2.1" );
var id33 = charIDToTypeID( "Dcmn" );
desc6.putObject( id18, id33, desc7 );
executeAction( id17, desc6, DialogModes.NO );
// =======================================================
var id34 = charIDToTypeID( "Mk " );
var desc8 = new ActionDescriptor();
var id35 = charIDToTypeID( "Nw " );
var desc9 = new ActionDescriptor();
var id36 = charIDToTypeID( "ClrI" );
var id37 = charIDToTypeID( "MskI" );
var id38 = charIDToTypeID( "MskA" );
desc9.putEnumerated( id36, id37, id38 );
var id39 = charIDToTypeID( "Clr " );
var desc10 = new ActionDescriptor();
var id40 = charIDToTypeID( "Rd " );
desc10.putDouble( id40, 255.000000 );
var id41 = charIDToTypeID( "Grn " );
desc10.putDouble( id41, 0.000000 );
var id42 = charIDToTypeID( "Bl " );
desc10.putDouble( id42, 0.000000 );
var id43 = charIDToTypeID( "RGBC" );
desc9.putObject( id39, id43, desc10 );
var id44 = charIDToTypeID( "Opct" );
desc9.putInteger( id44, 50 );
var id45 = charIDToTypeID( "Chnl" );
desc8.putObject( id35, id45, desc9 );
executeAction( id34, desc8, DialogModes.NO );
CHAPITRE 4 : Gestionnaire de scripts Utilisation de l’écouteur de scripts pour rechercher des ID d’événements et de classes 83
6. La méthode executeAction pour ces deux actions utilise un argument dont la valeur est définie
comme « Mk » (voir id17 et id34). Il s’agit de l’ID d’événement de l’action New. Cette action a
également besoin de connaître la classe à utiliser, l’ID de classe de l’événement.
8. Vous pouvez désormais utiliser ces ID d’événements et de classes afin de configurer une notification
d’événement pour les événements New Document et New Channel à partir de vos scripts. Par
exemple, dans JavaScript :
var eventFile = new File(app.path +
"/Presets/Scripts/Event Scripts Only/Welcome.jsx")
app.notifiers.add("Mk ", eventFile, "Dcmn")
app.notifiers.add("Mk ", eventFile, "Chnl")
Index
84
Index 85
D G
Document Info, objet Gestionnaire de scripts
défini, 13 défini, 73
lien avec l’interface utilisateur, 15 exécution de code JavaScript à partir de scripts
utilisation, 47 AppleScript, 80
Document, objet exécution de code JavaScript à partir de scripts
activation, 26 VBScript, 79
ajout, 24 objets de scripts, 74
défini, 12 utilisation à partir de scripts JavaScript, 75
enregistrement, 31 utilisation à partir de scripts VBScript, 76
informations sur le document, 47
lien avec l’interface utilisateur, 14 H
manipulation, 35
ouverture, 28 hiérarchie, 11
utilisation, 34 hiérarchie d’imbrication, 11
valeurs d’unité, 58 History State, objet
défini, 13
E lien avec l’interface utilisateur, 15
purge, 48
écouteur de scripts rétablissement, 48
désinstallation, 74 utilisation, 47
enregistrement de scripts, 74
fichiers journaux, 73 I
installation, 73
recherche d’ID d’événements, 81 ID d’événements, recherche avec l’écouteur de
recherche d’ID de classes, 81 scripts, 81
Editeur de scripts ID de classes, recherche avec l’écouteur de scripts,
utilisation, 18 81
enregistrement des documents, 31 images, modification de la composition, 12
EPS open options, objet
valeurs d’unité, 58 J
états d’historique
définis, 47 JavaScript
extensions de fichier conventions, 6
fichiers de script, 9 création, 19
exécution, 10, 19
F exécution à partir de scripts Applescript, 10
exécution à partir de scripts VBScript, 10
fichiers exemple d’automatisation d’un flux de
déduction du format, 28 production, 60
définition du format, 29 prise en charge, 10
enregistrement, 31 utilisation du Gestionnaire de scripts, 75
ouverture, 28
ouverture en utilisant des paramètres L
spécifiques, 29
filtres langages de script
application du filtre Flou directionnel, 71 exemple de scripts, 17
application du filtre Onde, 66–70 pris en charge, 9
rendre exécutable sous forme de script, 74 Layer Set, objet
supplémentaires, 54 défini, 12
utilisation, 53 Layer Comp, objet
flou directionnel, définition, 71 défini, 13
Index 86