Vous êtes sur la page 1sur 91

ADOBE PHOTOSHOP CS4 GUIDE DES SCRIPTS

2008 Adobe Systems Incorporated. Tous droits rservs. Guide des scripts Photoshop Adobe Creative Suite 4 Adobe, le logo Adobe, Illustrator et Photoshop sont des marques ou des marques dposes dAdobe Systems Inc. aux Etats-Unis et/ou dans dautres pays. Apple et Mac OS sont des marques dApple Computer, Inc., dposes aux Etats-Unis et dans dautres pays. Microsoft et Windows sont des marques ou des marques dposes de Microsoft Corporation aux Etats-Unis et dans dautres pays. JavaScript et toutes les marques lies Java sont des marques ou des marques dposes de Sun Microsystems, Inc. aux Etats-Unis et dans dautres pays. Toutes les autres marques cites sont la proprit de leurs dtenteurs respectifs. Les informations contenues dans ce guide sont donnes titre purement indicatif. Elles peuvent tre modifies sans pravis et ne constituent pas un engagement de la part dAdobe Systems Inc. Adobe Systems Inc. ne peut tre tenu pour responsable des erreurs ou des inexactitudes apparaissant dans le prsent document. Le logiciel dcrit dans ce document est fourni sous licence et ne peut tre utilis ou copi que conformment la licence. Adobe Systems Inc., 345 Park Avenue, San Jose, Californie 95110, Etats-Unis.

Table des matires


1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Conventions utilises dans ce guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Concepts de base pour les scripts Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8


Prsentation des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Pourquoi utiliser des scripts plutt que des actions ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Prise en charge des scripts dans Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Prise en charge de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Excution dautres scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Scripts de dmarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Excution de scripts JavaScript partir dAS ou de VBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Modle dobjet de Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hirarchie dimbrication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes Application et Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Layer Comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe History State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Document Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes Path Item, Sub Path Item et Path Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Notifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Count Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Color Sampler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Measurement Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hirarchie dimbrication et interface utilisateur de Photoshop . . . . . . . . . . . . . . . . . . . . . . . . Objets supplmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration dun exemple de script Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration et excution dun script AppleScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration et excution dun script VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration et excution dun script JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 12 13 13 13 13 14 14 14 14 14 14 14 15 15 16 17 18 19 20 20

Scripts Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Affichage des objets, commandes et mthodes Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Affichage du dictionnaire AppleScript de Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Affichage de la bibliothque de types de Photoshop (VBS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Ciblage et rfrencement de lobjet Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Cration dobjets dans un script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Dfinition de lobjet actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Dfinition du document actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3

Table des matires

Dfinition du calque actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Dfinition des couches actives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Ouverture dun document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Ouverture dun fichier avec le format de fichier par dfaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Dfinition des formats de fichier ouvrir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Enregistrement dun document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Dfinition des prfrences de lapplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Autorisation ou refus douverture de botes de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Utilisation du modle dobjet de Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de lobjet Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de lobjet Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manipulation dun objet document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets calque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration dun objet ArtLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration dun objet Layer Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rfrencement des objets ArtLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets Layer Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liaison dobjets calque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application de styles aux calques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de lobjet Text Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dfinition dun type de calque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout et manipulation de texte dans un objet Text Item . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cration et dfinition dune slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application dun contour au cadre de slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inversion des slections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dilatation, contraction et contour progressif des slections . . . . . . . . . . . . . . . . . . Remplissage dune slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chargement et stockage des slections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changement des types de couches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de lobjet Document Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets history state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets Notifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de lobjet PathItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des objets de couleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes de couleur unie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des valeurs hexadcimales pour les couleurs RVB . . . . . . . . . . . . . . . . . Obtention et conversion de couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparaison des couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obtention dune couleur Web scurise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 36 36 38 38 39 40 41 41 42 43 43 44 45 45 46 47 47 47 48 49 49 49 50 51 52 54 54 55 55 56 56

Utilisation de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Filtres divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Prsentation de linteraction avec le Presse-papiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Utilisation des commandes copy et paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Utilisation de la commande/mthode copy merged . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Utilisation des units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Valeurs dunit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Types de valeurs dunit spciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Table des matires

Prcisions sur lunit en AppleScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des valeurs dunit dans des calculs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la valeur dunit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dfinition des units de rgle et de texte dans un script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmation avance de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des prfrences de document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application de couleur un lment de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application dun filtre Onde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dfinition de la zone dun objet de slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application dun filtre Flou directionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59 60 61 62 64 64 67 71 71 75

Exemples de scripts JavaScript pour lautomatisation dun flux de production . . . . . . . . . . . . . . . . . 63

Gestionnaire de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Module externe Ecouteur de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Installation de lcouteur de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Objets du gestionnaire de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Enregistrement dun script laide de lcouteur de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Utilisation du gestionnaire de scripts partir dun script JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Utilisation du gestionnaire de scripts partir dun script VBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Excution de code du gestionnaire de scripts JavaScript partir dun script VBScript . . . . . . . . . . 83 Excution de code du gestionnaire de scripts JavaScript partir dun script AppleScript . . . . . . . 84 Utilisation de lcouteur de scripts pour rechercher des ID dvnements et de classes . . . . . . . . 85

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Introduction

A propos de ce manuel
Ce manuel propose une introduction aux scripts pour Adobe Photoshop CS4 sous Mac OS et Windows. Le chapitre 1 traite des conventions de base utilises dans ce manuel. Le chapitre 2 prsente brivement les scripts, notamment comment les excuter, ainsi que le modle dobjet de Photoshop. Le chapitre 3 expose les lments et objets spcifiques Photoshop et dcrit des techniques de script avances pour lapplication Photoshop. Des exemples de code sont fournis dans trois langages :

AppleScript VBScript JavaScriptTM

REMARQUE : des informations de rfrence distinctes pour les scripts Photoshop sont fournies pour chacun des trois langages dans les Guide de rfrence pour les scripts livrs avec cette installation, ou via les explorateurs dobjets disponibles pour chaque langage (voir les sections Affichage du dictionnaire AppleScript de Photoshop , page 22 et Affichage de la bibliothque de types de Photoshop (VBS) , page 23). Pour plus de dtails sur lutilisation de lafficheur modles dobjets Extend Script, consultez le JavaScript Tools Guide (Guide des outils JavaScript). Le chapitre 4 traite du gestionnaire de scripts qui vous permet dcrire des scripts ciblant la fonctionnalit Photoshop sinon inaccessible dans linterface de scripts. REMARQUE : consultez le fichier LISEZ-MOI livr avec Photoshop pour obtenir des informations de dernire minute, des exemples de scripts et des informations sur les problmes non rsolus.

Conventions utilises dans ce guide


Les exemples de code et de langage particulier apparaissent dans une police Courier chasse fixe :
app.documents.add

Plusieurs conventions sont utilises lorsquil est fait rfrence AppleScript, VBScript et JavaScript. Gardez lesprit les abrviations suivantes :

AS pour AppleScript VBS pour VBScript JS pour JavaScript

Le terme commandes est utilis pour faire rfrence la fois aux commandes en AppleScript et aux mthodes en VBScript et JavaScript.

CHAPITRE 1 : Introduction

Conventions utilises dans ce guide

Lorsquil est fait rfrence des proprits et des commandes spcifiques, ce manuel suit la convention de dnomination AppleScript pour cette proprit, et les noms VBScript et JavaScript apparaissent entre parenthses. Par exemple : La proprit display dialogs (DisplayDialogs/displayDialogs) fait partie de lobjet Application. Dans ce cas, display dialogs fait rfrence la proprit AppleScript, DisplayDialogs fait rfrence la proprit VBScript, et displayDialogs fait rfrence la proprit JavaScript. Pour de plus grands blocs de code, les exemples de scripts sont rpertoris 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 utiliss pour organiser des listes de valeurs spcifiques chaque langage.

Concepts de base pour les scripts Photoshop


Ce chapitre offre un aperu des scripts pour Photoshop, dcrit la prise en charge des scripts pour les langages AppleScript, VBScript et JavaScript, la manire dexcuter les scripts et traite du modle dobjet de Photoshop. Il fournit un exemple simple pour vous aider crire votre premier script Photoshop. Si vous tes dj 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 Modle dobjet de Photoshop , page 11 pour plus de dtails sur le modle dobjet de Photoshop. Pour plus de dtails sur la slection dun langage de script, consultez le guide Introduction to Scripting (Introduction aux scripts). Pour consulter des exemples de scripts crs spcialement pour tre utiliss avec Photoshop, reportez-vous au chapitre 3, Scripts Photoshop , page 22. Pour plus de dtails sur les objets et commandes Photoshop, utilisez les informations de rfrence contenues dans les trois manuels fournis avec cette installation : Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4, Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 et Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4.

REMARQUE : vous pouvez galement consulter des informations sur les objets et commandes Photoshop en utilisant les explorateurs dobjets pour chacun des trois langages de script (voir la section Affichage des objets, commandes et mthodes Photoshop , page 22).

Prsentation des scripts


Un script est une srie de commandes ordonnant Photoshop deffectuer un ensemble dactions spcifiques, comme appliquer diffrents filtres des slections dans un document ouvert. Ces actions peuvent tre simples et ne concerner quun seul objet. Elles peuvent aussi tre complexes et concerner plusieurs objets dans un document Photoshop. Les actions peuvent invoquer Photoshop uniquement ou dautres applications. Les scripts permettent dautomatiser des tches rptitives et sont souvent utiliss comme outils daide la cration pour rationaliser des tches qui seraient trop longues raliser manuellement. Par exemple, vous pouvez crire un script pour gnrer un nombre de versions localises dune image particulire ou pour collecter des informations sur les diffrents profils colorimtriques utiliss par une collection dimages. Si vous dbutez dans lcriture de scripts, il est prfrable de prendre connaissance des informations de base sur les scripts fournies dans le manuel Introduction to Scripting (Introduction aux scripts).

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Prise en charge des scripts dans Photoshop 9

Pourquoi utiliser des scripts plutt que des actions ?


Si vous avez utilis les actions Photoshop, vous connaissez leur utilit en matire dautomatisation des tches rptitives. Vous pouvez exploiter cet avantage grce aux scripts par lajout de fonctions qui ne sont pas disponibles pour les actions Photoshop. Par exemple, les fonctions suivantes sont possibles avec des scripts, pas avec des actions :

Vous pouvez ajouter une logique conditionnelle, de sorte que le script prenne automatiquement ses dcisions en fonction de la situation en cours. Par exemple, vous pouvez crire un script qui dcide quelle couleur de bordure ajouter en fonction de la taille de la zone slectionne dans une image : Si la zone slectionne est infrieure 2 x 4 pouces, ajoutez une bordure verte ; sinon ajoutez une bordure rouge. Un mme 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 4, comme Adobe Illustrator CS4, dans le mme script. Vous pouvez ouvrir, enregistrer et renommer des fichiers laide de scripts. Vous pouvez copier des scripts dun ordinateur sur un autre. En revanche, si vous utilisez des actions et que vous changez dordinateur, vous devez les recrer. Les scripts offrent une plus grande souplesse pour louverture automatique de fichiers. Lorsque vous ouvrez un fichier dans une action, vous devez entrer lemplacement du fichier dans le code. Les scripts permettent dutiliser des variables pour les chemins daccs aux fichiers.

REMARQUE : consultez lAide de Photoshop pour plus de dtails sur les actions Photoshop.

Prise en charge des scripts dans Photoshop


Photoshop prend en charge les scripts dans trois langages : AppleScript, VBScript et JavaScript. AppleScript et JavaScript sexcutent sous Mac OS, tandis que JavaScript et VBScript sexcutent sous Windows. Pour plus de dtails sur le choix du langage de script et sur lutilisation de ces langages avec des applications Adobe, reportez-vous au manuel Introduction to Scripting (Introduction aux scripts). Reportez-vous aux sections Cration et excution dun script AppleScript , page 19, Cration et excution dun script VBScript , page 20 et Cration et excution dun script JavaScript , page 20. Vous pouvez appeler des scripts JavaScript partir de scripts AppleScript et VBScript (voir la section Excution de scripts JavaScript partir dAS ou de VBS , page 11). Pour quun fichier soit reconnu en tant que script valide par Photoshop, il doit avoir lextension qui convient. Type de script AppleScript JavaScript ExtendScript VBScript Visual Basic Type de fichier script compil fichier OSAS texte texte excutable Extension
.scpt

Plate-forme Mac OS Mac OS et Windows Windows Windows

(none)
.js .jsx .vbs .exe

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Prise en charge des scripts dans Photoshop

10

Prise en charge de JavaScript


Pour quun fichier JavaScript soit reconnu en tant que script valide par Photoshop, il doit avoir lextension .js ou .jsx. Sous Mac OS, les scripts avec ces deux extensions fonctionnent de manire identique. Sous Windows, si les fichiers de script sont ouverts depuis Photoshop, les extensions .js et .jsx peuvent tre utilises indiffremment. Cependant, lorsque vous lancez un script avec lextension .js en cliquant deux fois dessus, il est interprt par le moteur Microsoft JScript et ne peut pas lancer Photoshop. Il est donc prfrable de choisir lextension .jsx sous Windows, car le script est interprt avec le moteur ExtendScript. Les scripts crits en JavaScript sont accessibles partir du menu Scripts dAdobe Photoshop (Fichier > Scripts), qui donne un accs simple et rapide vos scripts JavaScripts. En plaant un fichier JavaScript lemplacement adquat 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 CS4 /Paramtres prdfinis /Scripts). Tous les scripts se trouvant dans ce dossier sont affichs, sans leur extension, dans le menu Scripts. Le nombre de scripts dans le menu Scripts nest pas limit. Les scripts ajouts au dossier Scripts pendant le fonctionnement de Photoshop apparatront dans le menu Scripts uniquement aprs le prochain lancement de lapplication. Tous les scripts se trouvant dans le dossier Scripts et ses sous-dossiers apparaissent en haut du menu Fichier > Scripts. Aucune organisation hirarchique nest effectue dans le menu Scripts lorsque vous ajoutez des sous-dossiers.

Excution dautres scripts


La commande Parcourir au bas du menu Scripts (Fichier > Scripts > Parcourir) vous permet dexcuter des scripts qui ne sont pas installs dans le dossier Scripts. Vous pouvez galement utiliser la commande Parcourir pour slectionner les scripts placs dans le dossier Scripts depuis la dernire excution de lapplication. Lorsque vous choisissez la commande Parcourir, la bote de dialogue dexploration qui saffiche vous permet de slectionner un script excuter. Seuls les fichiers .js ou .jsx saffichent dans la bote de dialogue dexploration. Lorsque vous en slectionnez un, il est excut de la mme manire quun script install.

Scripts de dmarrage
Pendant son lancement, Photoshop excute tous les fichiers .jsx qui se trouvent dans les dossiers de dmarrage.

Sous Windows, le dossier de dmarrage des scripts dfinis par lutilisateur est le suivant :
C:\Program Files\Common Files\Adobe\Startup Scripts CS4\Adobe Photoshop

Sous Mac OS, le dossier de dmarrage des scripts dfinis par lutilisateur est le suivant :
~/Library/Application Support/Adobe/Startup Scripts CS4/Adobe Photoshop

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

11

Si votre script se trouve dans le dossier de dmarrage principal, il est galement excut par toutes les autres applications de la suite Adobe Creative Suite 3 au dmarrage. Si un script de ce type doit tre excut uniquement par Photoshop, il doit comporter les lignes de code suivantes :
if( BridgeTalk.appName == "photoshop" ) { //continue executing script }

Pour plus de dtails, consultez le JavaScript Tools Guide (Guide des outils JavaScript).

Excution de scripts JavaScript partir dAS ou de VBS


Comme les scripts JavaScript sont indpendants de la plate-forme, vous pouvez les excuter partir dAppleScript ou de VBScript. Vous pouvez excuter soit une seule instruction JavaScript, soit un fichier JavaScript complet. Pour plus de dtails, consultez le guide Introduction to Scripting (Introduction aux scripts).

Modle dobjet de Photoshop


Un modle dobjet de document (DOM) est une interface de programmation qui vous permet daccder par programmation diverses composantes dun document (tel que dfini pour cette application) au moyen dun langage de script. Pour plus de dtails sur les modles dobjets dAdobe et sur les langages de script qui les prennent en charge, reportez-vous au guide Introduction to Scripting (Introduction aux scripts). Le DOM Photoshop se compose dune reprsentation hirarchique de lapplication Photoshop, des documents utiliss dans celle-ci et des lments de ces documents. Il vous permet daccder aux documents et leurs composantes et de les manipuler par programmation. Par exemple, partir du DOM, vous pouvez crer un document, ajouter un calque un document existant ou modifier la couleur darrire-plan dun calque. La plupart des fonctions disponibles via linterface utilisateur de Photoshop sont disponibles via le DOM. Une bonne comprhension du DOM Photoshop et de la manire dont chaque aspect du DOM est associ lapplication Photoshop et ses documents facilitera lcriture des scripts.

Hirarchie dimbrication
Le modle dobjet de Photoshop est une hirarchie dimbrication, ce qui signifie que les objets contenus dans le modle sont identifis partiellement par les objets qui les contiennent. Dans Photoshop, lobjet Application se trouve en haut de la hirarchie. 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 mthodes du DOM vous permettent dordonner des documents Photoshop dajouter et de supprimer des objets, ou de dfinir ou changer des proprits individuelles dobjet comme la couleur, la taille et la forme. Dans le diagramme ci-dessous, chaque nud de la hirarchie reprsente une classe dans le DOM Photoshop. Le modle dobjet de Photoshop utilise des lments (AppleScript) ou des collections (VBScript, JavaScript) pour regrouper facilement les classes. Lillustration du modle dobjet ci-dessous ne reprsente pas dlments ou de collections dobjets. Les classes ne sont pas toutes associes une collection. Cependant, certaines classes cl sont regroupes par lments ou collection. Les lments/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

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

12

Items et Text Fonts. Reportez-vous au guide Introduction to Scripting (Introduction aux scripts) pour plus de dtails sur les lments et les collections.

REMARQUE : dans Photoshop, les collections VBScript sont indexes partir de 1 et non de 0 ( la diffrence dautres groupes VBScript, qui commencent lindexation partir de 0).
.

Hirarchie dimbrication Photoshop (illustrant uniquement les classes cl)

Application

Notifier

Document

Preferences

Selection

Channel

Layer Comp

Count Item

Color Sampler

Measurement Scale

Document Info

History State

Path Item

Art Layer

Layer Set

Sub Path Item Path Point

Text Item (Objet)

Layer Set

Art Layer

Classes Application et Document


La classe Application est la racine de la hirarchie du modle dobjet de Photoshop. Les scripts doivent cibler lapplication approprie pour tre excuts correctement (voir la section Ciblage et rfrencement de lobjet Application , page 24). La classe Document permet dapporter des modifications limage dun document. Grce lobjet Document, vous pouvez recadrer, faire pivoter ou appliquer une symtrie la zone de travail, redimensionner limage ou la zone de travail et rogner limage. Vous pouvez galement utiliser lobjet Document pour obtenir le calque actif, puis enregistrer le document actif puis copier et coller du contenu dans le document actif ou entre plusieurs documents. Pour plus de dtails sur lutilisation des objets Document, reportez-vous aux sections Cration dobjets dans un script , page 24 et Utilisation de lobjet Document , page 36.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

13

Classes Layer
Photoshop possde deux types de calques : un calque Art Layer qui comporte un contenu dimage et un groupe Layer Set qui ne comporte aucun ou plusieurs calques graphiques. Un groupe Art Layer est une classe layer lintrieur dun document qui vous permet de travailler sur un lment dune image sans perturber les autres. Les images se composent gnralement de plusieurs calques, dfinis par un groupe Layer Set. Vous pouvez modifier la composition dune image en modifiant lordre et les attributs des calques qui la composent. Un lment Text Item est un type particulier de calque graphique qui vous permet dajouter du texte une image. Dans Photoshop, un lment Text Item est mis en uvre comme une proprit du calque graphique. Pour plus de dtails sur les lments de texte, reportez-vous la section Utilisation de lobjet Text Item , page 43. Un groupe Layer Set est une classe qui comporte plusieurs calques. Elle sapparente un dossier plac sur votre bureau. A limage dun dossier qui peut contenir dautres dossiers, un groupe de calques est rcursif. Ainsi, un groupe de calques peut appeler un autre groupe de calques dans la hirarchie du modle dobjet. Pour plus de dtails sur les calques, reportez-vous la section Utilisation des objets calque , page 38.

Classe Layer Comp


La classe Layer Comp vous permet de crer, grer et afficher plusieurs versions dune mise en page dans un seul document.

Classe Channel
La classe Channel est utilise pour stocker les informations de pixel sur la couleur dune image. La couleur de limage dtermine le nombre de couches disponibles. Par exemple, une image RVB possde quatre couches par dfaut : une couche pour chaque couleur primaire et une couche utilise pour ldition de limage entire. Vous pouvez activer la couche rouge pour manipuler les seuls pixels rouges de limage ou bien choisir de manipuler toutes les couches la fois. Ces types de couches sont associs au mode du document et appels des couches de composante. Outre les couches de composante, Photoshop vous permet de crer des couches supplmentaires : vous pouvez crer une couche de ton direct, une couche de zone masque et une couche de zone slectionne. A laide des commandes ou des mthodes dun objet Channel, vous pouvez crer, supprimer et dupliquer des couches. Vous pouvez galement rcuprer lhistogramme dune couche, modifier son type ou modifier les couches actuellement slectionnes. Pour plus de dtails sur les couches, reportez-vous la section Utilisation des objets Channel , page 49.

Classe Selection
La classe Selection est utilise pour spcifier une zone de pixels dans le document actif (ou dans un calque slectionn du document actif ) que vous souhaitez manipuler. Pour plus de dtails sur les slections, reportez-vous la section Utilisation des objets Selection , page 45.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

14

Classe History State


La classe History State est un objet panneau qui conserve une trace des modifications apportes un document. Chaque fois que vous apportez une modification une image, le nouvel tat de cette image est ajout au panneau. Ces tats sont accessibles partir de lobjet Document et peuvent tre utiliss pour rtablir une ancienne version du document. Un tat dhistorique peut galement tre utilis pour remplir une slection. Pour plus de dtails sur les objets History, reportez-vous la section Utilisation des objets history state , page 50. REMARQUE : dans AppleScript, si vous crez un document et essayez dafficher immdiatement ltat dhistorique, Photoshop renvoie une erreur. Avant de pouvoir accder aux tats dhistorique, vous devez donc activer Photoshop en faisant passer lapplication au premier plan.

Classe Document Info


La classe Document Info stocke des mtadonnes propos dun document. Les mtadonnes sont des donnes qui permettent de dcrire le contenu ou les caractristiques dun fichier. Pour plus de dtails sur la classe Document Info, reportez-vous la section Utilisation de lobjet Document Info , page 49.

Classes Path Item, Sub Path Item et Path Point


La classe Path Item reprsente des informations sur un objet de dessin, comme le contour dune forme ou une ligne courbe. La classe Sub Path Item est contenue dans la classe Path Item et donne la vritable gomtrie de la forme. La classe Path Point contient des informations sur chaque point dun sous-trac (voir la section Utilisation de lobjet PathItem , page 52).

Classe Preferences
La classe Preferences vous permet daccder aux paramtres des prfrences utilisateur et de les dfinir (voir la section Utilisation des prfrences de document , page 64).

Classe Notifier
Lobjet Notifier lie un vnement un script. Si, par exemple, vous souhaitez que Photoshop cre automatiquement un document lorsque vous ouvrez lapplication, vous pouvez lier un script qui cre un objet Document un vnement Open Application. Pour plus de dtails sur les notifications, reportez-vous la section Utilisation des objets Notifier , page 51.

Classe Count Item


Lobjet Count Item fournit la prise en charge des scripts pour loutil Comptage.

Classe Color Sampler


Lobjet Color Sampler fournit la prise en charge des scripts pour loutil Echantillonnage de couleur.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

15

Classe Measurement Scale


Lobjet Measurement Scale fournit la prise en charge des scripts pour la nouvelle fonction Echelle de mesure qui vous permet de dfinir une chelle pour votre document.

Hirarchie dimbrication et interface utilisateur de Photoshop


Le tableau ci-dessous dcrit la relation de chaque objet avec linterface utilisateur de Photoshop. Nom de lobjet Application Document Pour crer cet objet sans utiliser de script Lancez lapplication Photoshop. Dans Photoshop, choisissez Fichier > Nouveau ou Fichier > Ouvrir.

Description Application Photoshop. Objet utilis, dans lequel vous crez des calques, des couches, des actions et autres. Dans un script, vous nommez, ouvrez ou enregistrez un document en procdant de la mme faon que pour un fichier dans lapplication. Zone slectionne dans un calque ou un document. Objet de dessin, tel que le contour dune forme, une ligne droite ou une courbe. Informations de pixel sur la couleur dune image. Classe de calques dun document vous permettant de travailler sur un lment dune image sans toucher aux autres. Collection dobjets Art Layer. Group est le nom actuel utilis dans linterface Photoshop. Layer Set tait le nom utilis dans une version antrieure de Photoshop. Le nom Object demeure identique des fins de rtrocompatibilit. Instantan de ltat des calques dun document.

Selection

Choisissez loutil Rectangle de slection ou Lasso et faites glisser la souris. Choisissez loutil Slection de trac ou Plume et dessinez un trac laide de la souris. Choisissez Fentre > Couches. Choisissez Calque > Nouveau > Calque ou Fentre > Calques. Choisissez Calque > Nouveau > Groupe.

Path Item

Channel Art Layer

Layer Set

Layer Comp

Choisissez Fentre > Compositions de calques. Slectionnez ensuite licne de composition de calques.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

16

Nom de lobjet Document Info

Description Mtadonnes sur un objet Document. REMARQUE : les mtadonnes sont des donnes qui permettent de dcrire le contenu ou les caractristiques dun fichier, comme le nom de fichier, la date et lheure de cration, le nom de lauteur, le nom de limage enregistre dans le fichier, etc. Notifie un script quun vnement se produit, cet vnement dclenchant ensuite lexcution du script. Par exemple, lorsquun utilisateur clique sur le bouton OK, lobjet notifier indique au script ce quil doit faire. Paramtres de prfrences de lapplication.

Pour crer cet objet sans utiliser de script Choisissez Fichier > Informations.

Notifier

Choisissez la commande Fichier > Scripts > Gestionnaire dvnements de script.

Preferences

Choisissez Edition > Prfrences sous Windows, ou Photoshop > Prfrences sous Mac OS.

History State

Stocke une version du document dans ltat o Choisissez Fentre > Historique, puis il se trouvait chaque fois que vous lavez slectionnez un tat dhistorique dans enregistr. le panneau Historique. REMARQUE : vous pouvez utiliser un objet
History State pour remplir un objet Selection ou pour rtablir un tat antrieur

du document. Color Sampler Reprsente un chantillonnage de couleur dans votre document. Count Item Reprsente un lment compt dans le document. Choisissez loutil Echantillonnage de couleur, puis cliquez dans le document. Choisissez loutil Comptage, puis cliquez dans le document. Lobjet Measurement Scale ne peut pas tre cr, mais vous pouvez modifier ses proprits en choisissant une chelle de mesure personnalise pour lanalyse.

Measurement Reprsente lchelle de mesure de votre Scale document.

Objets supplmentaires
Le modle dobjet de Photoshop inclut dautres objets que ceux dcrits dans la hirarchie dimbrication ci-dessus. La plupart des classes sont utilises en tant que types pour les proprits ou afin dapporter des informations (en tant quarguments) aux commandes et aux mthodes. Par exemple :

La classe color value (SolidColor/SolidColor) fournit le type pour les proprits background color (backgroundColor/backgroundColor) et foreground color (ForegroundColor/foregroundColor) de lobjet Application (voir la section Utilisation des objets de couleur , page 54).

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Modle dobjet de Photoshop

17

Les options douverture et denregistrement des documents sont dfinies 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 mthode save (saveAs/saveAs) (voir les sections Ouverture dun document , page 30 et Enregistrement dun document , page 32).

Constantes
Les constantes constituent un lment supplmentaire important du modle dobjet de Photoshop pour les langages JavaScript et VBScript. Les constantes sont un type de valeur dfinissant une proprit. Par exemple, la proprit kind dun objet Art Layer vous permet de dfinir uniquement des types spcifiques que Photoshop autorise. Pour des informations dordre gnral sur les constantes, reportez-vous au guide Introduction to Scripting (Introduction aux scripts). REMARQUE : dans ce document, les valeurs relles des numrations pour VBScript sont donnes au format suivant :
newLayerRef.Kind = 2 '2 indicates psLayerKind --> 2 (psTextLayer)

Le signe avant lexplication cre un commentaire et empche le texte situ droite de ce signe dtre lu par le moteur de script. Pour plus de dtails sur lutilisation des commentaires, reportez-vous au guide Introduction to Scripting (Introduction aux scripts). Par exemple, consultez lobjet ArtLayer soit dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, soit dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4. Une des proprits de cet objet est Kind( kind). Le type de valeur de cette proprit comprend un lien vers la constante qui dfinit les valeurs autorises pour la proprit. Pour VBScript et JavaScript, les constantes sont respectivement PSLayerKind et LayerKind. Cliquez dessus afin dafficher les valeurs utilisables pour dfinir la proprit kind. REMARQUE : des objets diffrents peuvent utiliser le mme nom de proprit avec des valeurs constantes diffrentes. Les valeurs constantes pour la proprit kind de lobjet Channel sont diffrentes des valeurs constantes pour la proprit kind de lobjet Art Layer.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Cration dun exemple de script Hello World

18

Cration dun exemple de script Hello World


Cette section prsente un script trs simple dans chacun des trois langages de script pour Photoshop. Le premier projet classique abord lors de lapprentissage dun nouvel environnement de programmation consiste afficher le message Hello World . Les scripts Hello World vont effectuer les tches suivantes : 1. Ouvrir lapplication Photoshop. 2. Crer un nouvel objet Document. A la cration du document, nous allons galement crer une variable nomme docRef, puis affecter une rfrence au document comme valeur de docRef. Le document va mesurer 4 pouces de largeur et de 2 pouces de hauteur 3. Crer un objet Art Layer. Dans notre script, nous crons une variable nomme artLayerRef puis attribuons une rfrence lobjet Art Layer comme valeur de artLayerRef. 4. Dfinir artLayerRef en tant quobjet texte. 5. Dfinir le contenu de lobjet texte, qui sera Hello World . REMARQUE : nous allons galement inclure des commentaires tout au long des scripts, et comme il sagit de notre premier script, nous allons mme en abuser. Ces tapes refltent un chemin spcifique dans la structure hirarchique, comme illustr ci-dessous.

Application

Document

Art Layer

Text Item

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Cration dun exemple de script Hello World

19

Cration et excution dun script AppleScript


Vous devez ouvrir lapplication Apple Script Editor afin daccomplir cette procdure. REMARQUE : lemplacement par dfaut de ce dernier est Applications > AppleScript > Editeur de scripts. Pour crer et excuter votre premier script AppleScript Photoshop : 1. Entrez le script ci-dessous dans lditeur de scripts : REMARQUE : les lignes commenant par -- sont des commentaires. Les commentaires sont facultatifs.
-- Sample script to create a new text item and -- change its contents. --target Photoshop CS4 tell application "Adobe Photoshop CS4" -- Create a new document and art layer. set docRef to make new document with properties {width:4 as inches, height:2 as inches} set artLayerRef to make new art layer in docRef -- Change the art layer to be a text layer. set kind of artLayerRef to text layer -- Get a reference to the text object and set its contents. set contents of text object of artLayerRef to "Hello, World" end tell

2. Cliquez sur le bouton Excuter pour excuter le script. Photoshop cre un document, ajoute un nouveau calque, change le calque en calque de texte et dfinit le texte sur Hello, World . REMARQUE : si vous rencontrez des erreurs, reportez-vous au guide Introduction to Scripting (Introduction aux scripts) dont une section porte sur le dbogage dAppleScript.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Cration dun exemple de script Hello World

20

Cration et excution dun script VBScript


Suivez ces tapes pour crer un script VBScript qui affiche le texte Hello World! dans un document Photoshop. Pour crer et excuter votre premier script VBScript Photoshop : 1. Entrez le script ci-dessous dans un diteur de scripts ou de texte. REMARQUE : les commentaires sont facultatifs.
Dim appRef Set appRef = CreateObject( "Photoshop.Application" ) ' Remember current unit settings and then set units to ' the value expected by this script Dim originalRulerUnits originalRulerUnits = appRef.Preferences.RulerUnits appRef.Preferences.RulerUnits = 2 ' Create a new 2x4 inch document and assign it to a variable. Dim docRef Dim artLayerRef Dim textItemRef Set docRef = appRef.Documents.Add(2, 4) ' Create a new art layer containing text Set artLayerRef = docRef.ArtLayers.Add artLayerRef.Kind = 2 ' Set the contents of the text layer. Set textItemRef = artLayerRef.TextItem textItemRef.Contents = "Hello, World!" ' Restore unit setting appRef.Preferences.RulerUnits = originalRulerUnits

2. Enregistrez le fichier en tant que fichier texte, avec lextension .vbs. 3. Cliquez deux fois sur ce fichier dans lExplorateur de Windows pour excuter le script. Le script ouvre Photoshop.

Cration et excution dun script JavaScript


Suivez ces tapes pour crer un script JavaScript qui affiche le texte Hello World! dans un document Photoshop. Puisque vous utiliserez Photoshop pour excuter vos scripts JavaScript, il nest pas ncessaire dinclure un code qui ouvre Photoshop au dbut 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 lapplication Photoshop et crer la possibilit douvrir des scripts JavaScript qui manipulent Photoshop partir dune zone quelconque de votre systme de fichiers. Consultez le chapitre Script UI du JavaScript Tools Guide (Guide des outils JavaScript) pour plus de dtails.

CHAPITRE 2 : Concepts de base pour les scripts Photoshop

Cration dun exemple de script Hello World

21

Pour crer et excuter votre premier script JavaScript Photoshop : 1. Entrez le script ci-dessous. REMARQUE : les commentaires sont facultatifs.
// Hello Word Script // Remember current unit settings and then set units to // the value expected by this script var originalUnit = preferences.rulerUnits preferences.rulerUnits = Units.INCHES // Create a new 2x4 inch document and assign it to a variable var docRef = app.documents.add( 2, 4 ) // Create a new art layer containing text var artLayerRef = docRef.artLayers.add() artLayerRef.kind = LayerKind.TEXT // Set the contents of the text layer. var textItemRef = artLayerRef.textItem textItemRef.contents = "Hello, World" // Release references docRef = null artLayerRef = null textItemRef = null // Restore original ruler unit setting app.preferences.rulerUnits = originalUnit

2. Enregistrez un fichier sous forme de fichier texte avec une extension de nom de fichier .jsx dans le dossier Paramtres prdfinis/Scripts de votre rpertoire Adobe Photoshop CS4. REMARQUE : vous devez placer vos scripts JavaScript dans le dossier Paramtres prdfinis/Scripts afin de les rendre accessibles partir du menu Fichier > Scripts dans Photoshop. Les scripts apparatront dans le menu Fichier > Scripts la session suivante. REMARQUE : Photoshop prend galement en charge les fichiers JavaScript qui portent une extension .js. 3. Utilisez lune des mthodes suivantes :

Si Photoshop est dj ouvert, choisissez Fichier > Scripts > Parcourir, naviguez ensuite vers le dossier Paramtres prdfinis > Scripts, puis slectionnez votre script. Dmarrez ou redmarrez Photoshop, choisissez ensuite Fichier > Scripts, puis slectionnez votre script partir du menu Scripts.

Scripts Photoshop
Ce chapitre prsente plusieurs techniques pour utiliser le modle dobjet de document de Photoshop (DOM) pour crer des scripts utiliser spcifiquement avec Photoshop. Vous apprendrez aussi vous servir des manuels de rfrence et des explorateurs de modles dobjets pour trouver des informations sur les objets, les classes, les proprits, les commandes et mme sur certaines valeurs (appeles constantes ou numrations) que vous pouvez utiliser pour crer des scripts AppleScripts, VBScript et JavaScripts pour Photoshop. CONSEIL : tout au long de ce chapitre, les explications sur la cration de scripts sont suivies dinstructions permettant de localiser les informations relatives aux lments spcifiques utiliss dans chaque script. Lutilisation de ces instructions vous aidera comprendre rapidement comment crer des scripts Photoshop.

Affichage des objets, commandes et mthodes Photoshop


Les contenus de rfrence Photoshop pour chacun des trois langages de script figurent dans les manuels de rfrence fournis dans cette installation :

Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4

Vous pouvez galement accder ces rfrences en utilisant un explorateur de modles dobjets associ chaque langage :

Pour AppleScript, utilisez lditeur de scripts dAppleScript pour afficher le dictionnaire AppleScript de Photoshop. Pour VBScript, utilisez lditeur VBA de Microsoft Word, lexplorateur dobjets Visual Basic de Visual Basic ou Visual Studio. Pour JavaScript, utilisez lafficheur de modles dobjets ExtendScript. Consultez le JavaScript Tools Guide (Guide des outils JavaScript) pour plus de dtails.

Affichage du dictionnaire AppleScript de Photoshop


Vous pouvez utiliser lditeur de scripts dApple pour afficher le dictionnaire. REMARQUE : par dfaut, lditeur de scripts est stock dans le dossier Applications > AppleScript > Editeur de scripts. Pour afficher le dictionnaire AppleScript : 1. Dans lditeur de scripts, choisissez la commande Fichier > Ouvrir un dictionnaire. Lditeur de scripts affiche la bote de dialogue correspondante.

22

CHAPITRE 3 : Scripts Photoshop

Affichage des objets, commandes et mthodes Photoshop

23

2. Slectionnez Adobe Photoshop CS4, puis cliquez sur Ouvrir. Lditeur de scripts ouvre Photoshop puis affiche le dictionnaire Photoshop qui rpertorie les objets ainsi que les commandes, les proprits et les lments associs chaque objet. Les paramtres de chaque commande sont galement rpertoris. REMARQUE : le dictionnaire AppleScript de Photoshop naffiche pas la liste complte de formats douverture et denregistrement.

Affichage de la bibliothque de types de Photoshop (VBS)


Vous pouvez utiliser lditeur VBA de Microsoft Word pour afficher les objets et commandes disponibles pour VBScript dans Photoshop. Pour afficher la bibliothque dobjets VBS dans Microsoft Word : 1. Dmarrez Word, puis choisissez la commande Outils > Macro > Visual Basic Editor. 2. Choisissez Outils > Rfrences, cochez ensuite la case Adobe Photoshop Type Library, puis cliquez sur OK. 3. Choisissez la commande Affichage > Explorateur dobjets. 4. Slectionnez Photoshop CS4 type library dans la liste des bibliothques ouvertes affiches dans le menu droulant en haut gauche. 5. Choisissez une classe dobjet pour afficher des informations supplmentaires sur la classe. Vous pouvez galement utiliser lexplorateur dobjets dans lenvironnement de dveloppement Visual Basic pour afficher les objets et commandes disponibles pour VBScript dans Photoshop. Pour afficher la bibliothque dobjets VBS dans lenvironnement de dveloppement de Visual Basic : 1. Dmarrez Visual Studio 2005 ou Visual Basic. 2. Choisissez Affichage > Explorateur dobjets. 3. Dans la liste droulante Parcourir, slectionnez loption de modification du jeu de composants personnaliss. 4. Sous longlet COM, recherchez Adobe Photoshop CS4 Object Library , et slectionnez-la. 5. Cliquez sur le bouton Ajouter. La bibliothque slectionne saffiche dans la section des projets et composants slectionns de la fentre. 6. Cliquez sur le bouton OK. 7. A prsent, la bibliothque Photoshop est charge dans lexplorateur dobjets. Cliquez sur le signe plus en regard de licne de la bibliothque Photoshop. 8. Cliquez sur le signe plus en regard de licne dobjets Photoshop. 9. Les objets dfinis dans la bibliothque Photoshop sont rpertoris. Vous pouvez les slectionner individuellement pour afficher plus de dtails sur la classe.

CHAPITRE 3 : Scripts Photoshop

Ciblage et rfrencement de lobjet Application

24

Ciblage et rfrencement de lobjet Application


Puisque vous excutez vos scripts AppleScript et VBScript en dehors de lapplication Photoshop, votre script doit indiquer en premier lieu que les commandes sont excutes dans Photoshop. REMARQUE : en JavaScript, il nest pas utile de cibler lobjet Application puisque vous ouvrez les scripts partir de lapplication Photoshop elle-mme (voir la section Cration et excution dun script JavaScript , page 20). AS Pour cibler Photoshop en AppleScript, vous devez encadrer votre script avec les instructions suivantes :
tell application "Adobe Photoshop CS4" ... end tell

REMARQUE : toutes les commandes tant incluses dans le bloc tell, vous navez pas besoin de rfrencer lobjet Application dans lensemble du script. VBS En VBScript, procdez comme suit pour cibler lapplication :
Dim appRef Set appRef = CreateObject("Photoshop.Application")

JS

En JavaScript, lobjet Application nayant pas besoin dtre rfrenc, toutes les proprits et mthodes de lapplication sont accessibles sans qualification. Vous pouvez rfrencer lapplication en tant qulment de la structure hirarchique ou lignorer, en fonction de la clart que procure lune ou lautre des solutions vos scripts. Pour rfrencer lobjet Application, utilisez lobjet global prdfini app, la place du nom de classe. Les instructions suivantes sont quivalentes :
var docRef = app.documents[1]

et
var docRef=documents[1]

REMARQUE : les exemples JavaScript de ce guide ne rfrencent pas lobjet Application.

Cration dobjets dans un script


Pour crer un document dans lapplication Photoshop, choisissez Fichier > Nouveau. Pour crer dautres types dobjets dans un document, tels quun calque, une couche ou un trac, utilisez le menu Fentre ou choisissez licne Nouveau dans le panneau appropri. Cette section explique comment raliser ces tches dans un script. Pour crer un objet dans un script, vous devez nommer le type dobjet que vous souhaitez crer, puis utiliser la commande suivante :

AS : VBS : JS :

make Add add()

CHAPITRE 3 : Scripts Photoshop

Cration dobjets dans un script 25

Comme vous pouvez le constater la section Modle dobjet de Photoshop , page 11, lobjet Document contient tous les autres objets lexception des objets Application, Notifier et Preferences. Vous devez par consquent rfrencer lobjet Document lorsque vous ajoutez des objets autres que Document et Notifier au script (il est impossible dajouter un nouvel objet Preferences). REMARQUE : en VBScript et JavaScript, vous utilisez le nom de collection de lobjet pour nommer le type dobjet. 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 dtails sur les lments et collections. AS Linstruction suivante cre un objet Document dans un script AppleScript.
make new document

Vous pouvez galement utiliser la commande set pour crer une variable contenant une rfrence un nouveau document. Dans lexemple suivant, la variable nomme docRef contient une rfrence au nouveau document :
set docRef to make new document

Pour crer un objet autre quun document, vous devez rfrencer lobjet Document contenant lobjet. Linstruction suivante cre un calque graphique dans le document contenu dans la variable nomme docRef.
make new art layer in docRef

REMARQUE : lorsque vous crez un objet en AppleScript, vous ajoutez lobjet un lment, de la mme faon que vous ajoutez un objet VBScript ou JavaScript une collection. En AppleScript, cependant, le nom de llment est implicite dans linstruction make ou set. Ainsi, linstruction :
make new document

signifie rellement :
make new document in the documents element

Pour en savoir plus sur la cration dobjets dans un script AppleScript :

Recherchez les commandes make et set dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop (voir la section Affichage du dictionnaire AppleScript de Photoshop , page 22). Pour savoir quelles commandes peuvent tre utilises avec un objet, recherchez lobjet dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4. Si un objet possde des commandes autorises, une liste reprenant les commandes autorises saffiche la fin de la description de lobjet.

VBS

En VBScript, vous pouvez utiliser la mthode Add uniquement avec le nom de collection. La mthode Add nest autorise quavec les objets de collection. Par ailleurs, en VBScript, vous devez rfrencer lobjet Application lorsque vous crez ou faites rfrence un objet dans le script. Par exemple, pour crer un document dans un script VBScript, vous ne pouvez pas utiliser le nom de lobjet, comme dans lexemple suivant, qui cre un objet Document :
appRef.Document.Add()

Vous devez utiliser le nom de la collection, soit la forme plurielle du nom de lobjet, comme suit :
appRef.Documents.Add()

CHAPITRE 3 : Scripts Photoshop

Dfinition de lobjet actif

26

REMARQUE : dans cet exemple, lobjet Application est rfrenc via une variable nomme appRef (voir la section Ciblage et rfrencement de lobjet Application , page 24 pour plus de dtails). Pour ajouter un objet ArtLayer, vous devez rfrencer les objets Application et Document qui contiendront le calque graphique. Lexemple suivant rfrence lobjet Application laide de la variable appRef et lobjet Document laide de lindex du document plutt que du nom du document.
appRef.Documents(1).ArtLayers.Add()

REMARQUE : dans Photoshop, les collections VBScript sont indexes partir de 1 et non de 0, ce qui signifie que le premier document cr prend lindice 1 et non lindice 0. Si vous recherchez lobjet Document dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic, vous verrez quil ny a pas de mthode Add() pour lobjet. La mthode Add() est cependant disponible pour lobjet Documents. De mme, lobjet ArtLayer na pas de mthode Add() ; lobjet ArtLayers, si. REMARQUE : lobjet Layers est une exception, car il sagit dun objet de collection, mais sans mthode Add(). La collection Layers inclut la fois les objets ArtLayer et LayerSet, crs laide de la mthode Add sur la collection ArtLayers ou LayerSets. Pour plus de dtails, recherchez lobjet Layers dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4. JS En JavaScript, vous pouvez utiliser la mthode add() uniquement avec le nom de collection. La mthode add() nest autorise quavec les objets de collection. Linstruction JavaScript pour la cration dun document est semblable linstruction VBScript :
documents.add()

et non :
document.add()

REMARQUE : vous pouvez si vous le souhaitez inclure une rfrence lobjet Application. Linstruction suivante est quivalente lexemple prcdent :
app.documents.add()

Pour ajouter un objet ArtLayer, vous devez rfrencer lobjet Document qui contient le calque et utiliser la mthode add() pour la collection ArtLayers, avec la proprit artLayers de lobjet Document.
documents[0].artLayers.add()

Comme avec VBScript, la mthode add() est associe lobjet JavaScript Documents mais pas lobjet Document. De mme, lobjet ArtLayer na pas de mthode add() ; lobjet ArtLayers, si. REMARQUE : la collection Layers ninclut pas de mthode add(). Pour plus de dtails, recherchez lobjet Layers dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4.

Dfinition de lobjet actif


Pour travailler sur un objet dans lapplication Photoshop, vous devez en faire lobjet de premier plan, ou lobjet actif. Par exemple, pour travailler sur un calque, vous devez commencer par lamener au premier plan. La mme rgle sapplique aux scripts. Si votre script cre deux documents ou plus, les commandes et mthodes du script sont excutes sur le document actif. Il convient donc, pour sassurer que les commandes portent sur le bon document, de dsigner lors de la programmation le document actif avant dexcuter des commandes ou mthodes dans le script.

CHAPITRE 3 : Scripts Photoshop

Dfinition de lobjet actif

27

Pour dfinir un objet actif, procdez comme suit :


En AppleScript, utilisez la proprit current de lobjet parent. En VBScript, utilisez la proprit ActiveObject de lobjet parent (comme ActiveDocument ou ActiveLayer). En JavaScript, utilisez la proprit activeObject de lobjet parent (comme activeDocument ou activeLayer).

REMARQUE : lobjet parent est celui qui contient lobjet spcifi. Par exemple, lapplication est le parent du document ; un document est le parent dun calque, dune slection ou dune couche. Par exemple, si vous recherchez lobjet Application dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, ou dans lafficheur de modles dobjets ExtendScript, vous trouvez que lune de ses proprits est activeDocument ; si vous recherchez lobjet Document, vous trouverez activeLayer et activeHistoryState comme proprits. De la mme manire, si vous recherchez application dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4, ou dans le dictionnaire AppleScript de Photoshop, vous le trouvez comme proprit de current, etc. Pour des exemples de scripts dfinissant des objets actifs, reportez-vous aux sections suivantes :

Dfinition du document actif , page 27 Dfinition du calque actif , page 28 Dfinition des couches actives , page 29

Dfinition du document actif


Les exemples suivants expliquent comment dfinir le document actif. 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} --make docRef the active document set current document to docRef --here you would include command statements --that perform actions on the active document. Then, you could --make a different document the active document --use the current document property of the application class to --bring otherDocRef front-most as the new active document set current document to otherDocRef

CHAPITRE 3 : Scripts Photoshop

Dfinition de lobjet actif

28

VBS

'Create 2 documents Set docRef = app.Documents.Add ( 4, 4) Set otherDocRef = app.Documents.Add (4,6) 'make docRef the active document Set app.ActiveDocument = docRef 'here you would include command statements 'that perform actions on the active document. Then, you could 'make a different document the active document 'use the ActiveDocument property of the Application object to 'bring otherDocRef front-most as the new active document Set app.ActiveDocument = otherDocRef

JS

// Create 2 documents var docRef = app.documents.add( 4, 4) var otherDocRef = app.documents.add (4,6) //make docRef the active document app.activeDocument = docRef //here you would include command statements //that perform actions on the active document. Then, you could //make a different document the active document //use the activeDocument property of the Application object to //bring otherDocRef front-most as the new active document app.activeDocument = otherDocRef

Dfinition du calque actif


Les exemples suivants expliquent comment utiliser la proprit current layer (ActiveLayer/activeLayer) de lobjet Document pour dfinir le calque actif. Pour dfinir le calque actif dun document, le document doit tre actif. AS
set current layer of current document to layer Layer 1 of current document

REMARQUE : par dfaut, 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 proprit ActiveLayer sur lobjet Document dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic. REMARQUE : vous pouvez galement indiquer le calque utiliser par son nom. Par dfaut, Photoshop attribue les noms Calque 1, Calque 2, etc., aux calques (voir la section Rfrencement des objets ArtLayer , page 40).

CHAPITRE 3 : Scripts Photoshop

Dfinition de lobjet actif

29

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 proprit activeLayer sur lobjet Document dans le Guide de rfrence pour les scripts Javascript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript. REMARQUE : vous pouvez galement indiquer le calque utiliser par son nom. Par dfaut, Photoshop attribue les noms Calque 1, Calque 2, etc., aux calques (voir la section Rfrencement des objets ArtLayer , page 40).

Dfinition des couches actives


Plusieurs couches peuvent tre actives simultanment, si bien que la proprit channels (ActiveChannels/activeChannels) actuelle de lobjet Document prend comme valeur un tableau de couches. Pour dfinir les couches actives dun document, le document doit tre actif. AS Dfinissez comme couches actives les premire et troisime couches laide dun tableau de couches :
set current channels of current document to { channel 1 of current document, channel 3 of current document }

Vous pouvez sinon slectionner toutes les couches de composante en utilisant la proprit component channels de lobjet Document.
set current channels of current document to component channels of current document

VBS

Dfinissez comme couches actives du document actif les premire et troisime couches laide dun 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 slectionner toutes les couches de composante laide de la proprit ComponentChannels de lobjet Document.
appRef.ActiveDocument.ActiveChannels= _ appRef.ActiveDocument.ComponentChannels

JS

Dfinissez comme couches actives les premire et troisime couches laide dun tableau de couches :
theChannels = new Array(docRef.channels[0], docRef.channels[2]) docRef.activeChannels = theChannels

Vous pouvez galement slectionner toutes les couches de composante laide de la proprit componentChannels de lobjet Document.
app.activeDocument.activeChannels = activeDocument.componentChannels

CHAPITRE 3 : Scripts Photoshop

Ouverture dun document

30

Ouverture dun document


Pour ouvrir un document existant, vous devez utiliser la commande open/Open/open() de lobjet Application. Vous devez spcifier le nom du document (le chemin daccs au fichier qui contient le document) laide de la commande.

Ouverture dun fichier avec le format de fichier par dfaut


Du fait que Photoshop prend en charge plusieurs formats de fichiers diffrents, la commande open/Open/open() vous permet de spcifier le format du document que vous ouvrez. Si vous ne spcifiez pas le format, Photoshop choisit votre place le type de fichier, qui est appel le format de fichier par dfaut. Les exemples suivants ouvrent un document en choisissant le format par dfaut le mieux adapt : AS VBS JS
set theFile to alias "Applications:Documents:MyFile" open theFile fileName = "C:\MyFile" Set docRef = appRef.Open(fileName) var fileRef = File(app.path + "/Samples/Fish.psd") var docRef = app.open(fileRef)

En JavaScript, vous devez crer un objet File, puis transmettre la commande open() une rfrence lobjet.

Dfinition des formats de fichier ouvrir


Classes douverture Open Options

Photo CD Open Options

Raw Format Open Options

Camera Raw Open Options

EPS Open Options

PDF Open Options

Vous pouvez dfinir des options pour les types de documents de la liste suivante, afin de spcifier le mode douverture du document (hauteur et largeur de la fentre douverture du document, page afficher louverture dun document multipage, etc.).

PhotoCD CameraRaw RawFormat Adobe PDF EPS

CHAPITRE 3 : Scripts Photoshop

Ouverture dun document

31

Pour prendre connaissance des options disponibles pour chaque format de fichier, recherchez les proprits des objets OpenOptions commenant par le nom du format de fichier requis. Par exemple :

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4, recherchez la classe Photo CD open options ou la classe EPS open objects. Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, recherchez les objets PhotoCDOpenOptions ou EPSOpenOptions.

Les exemples suivants montrent comment ouvrir un document PDF gnrique (multiplage/multi-image) avec les spcifications suivantes :

Le document souvre en modeRVB avec une rsolution de 72ppp. Un lissage sera appliqu afin de minimiser laspect crnel du contour des images du document. Le document souvrira la page 3. La forme initiale du document sera modifie conformment aux proprits de hauteur et de largeur si sa largeur natteint pas le double de sa hauteur.

AS

tell application "Adobe Photoshop CS4" set myFilePath to alias "OS X 10.4.8 US:Users:psauto:Desktop:opal_screen.pdf" with timeout of 300 seconds open myFilePath as PDF with options {class:PDF open options, mode:RGB, resolution:72, use antialias:true, page:3} end timeout end tell Dim appRef Set appRef = CreateObject("Photoshop.Application") 'Remember unit settings and set to values expected by this script Dim originalRulerUnits originalRulerUnits = appRef.Preferences.RulerUnits appRef.Preferences.RulerUnits = 1 'value of 1 = psPixels 'Create a PDF option object Dim pdfOpenOptionsRef Set pdfOpenOptionsRef = CreateObject("Photoshop.PDFOpenOptions") pdfOpenOptionsRef.AntiAlias = True pdfOpenOptionsRef.Mode = 2 ' psOpenRGB pdfOpenOptionsRef.Resolution = 72 pdfOpenOptionsRef.Page = 3 ' open the file Dim docRef Set docRef = appRef.Open(C:\\PDFFiles\MyFile.pdf, pdfOpenOptionsRef) 'Restore unit setting appRef.Preferences.RulerUnits = originalRulerUnits

VBS

JS

REMARQUE : lobjet File dExtendScript attend une notation URI (universal resource identifier). Reportez-vous au JavaScript Tools Guide (Guide des outils JavaScript) pour plus de dtails.

CHAPITRE 3 : Scripts Photoshop

Enregistrement dun document

32

// 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) // Create a PDF option object var pdfOpenOptions = new PDFOpenOptions pdfOpenOptions.antiAlias = true pdfOpenOptions.mode = OpenDocumentMode.RGB pdfOpenOptions.resolution = 72 pdfOpenOptions.page = 3 // open the file app.open( fileRef, pdfOpenOptions ) // restore unit settings app.preferences.rulerUnits = originalRulerUnits

Enregistrement dun document


Les options denregistrement des documents dans Photoshop sont illustres ci-dessous. Pour connatre les proprits que vous pouvez spcifier pour une option denregistrement relative un format de fichier particulier, recherchez lobjet qui commence par le nom du format de fichier requis. Par exemple, pour connatre les proprits denregistrement dun fichier .eps, procdez comme suit :

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4, recherchez la classe EPS save options. Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, recherchez EPSSaveOptions. Classes denregistrement

Save Options

Photoshop

BMP

GIF

EPS

JPEG

PDF

Pict File

Pict Resource

Pixar

PNG

TIFF

Raw

DSC1

DSC2

SGI RGB

Targa

REMARQUE : il est important de noter que les formats douverture (Open) et denregistrement (Save) ne sont pas identiques (voir la section Dfinition des formats de fichier ouvrir , page 30 titre de comparaison). REMARQUE : les formats facultatifs suivants sont disponibles uniquement lorsquils sont installs explicitement :

Alias PIX Electric Image SGI RGB

CHAPITRE 3 : Scripts Photoshop

Enregistrement dun document

33

Wavefront RLA SoftImage

Les scripts suivants enregistrent les documents au format .jpeg. AS


tell application "Adobe Photoshop CS4" make new document set myFile to "OS X 10.4.8 US:Users:psauto:Desktop:Rat.jpg" set myOptions to {class:JPEG save options, embed color profile:false, format options:standard, matte:background color matte} save current document in file myFile as JPEG with options myOptions appending no extension without copying end tell Dim appRef,docRef Set appRef = CreateObject("Photoshop.Application") Set docRef = appRef.Documents.Add() Set jpgSaveOptions = CreateObject("Photoshop.JPEGSaveOptions") jpgSaveOptions.EmbedColorProfile = True jpgSaveOptions.FormatOptions = 1 'for psStandardBaseline jpgSaveOptions.Matte = 1 'for psNoMatte jpgSaveOptions.Quality = 1 appRef.ActiveDocument.SaveAs "c:\temp\myFile2", _ jpgSaveOptions, True, 2 'for psLowercase

VBS

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)

CHAPITRE 3 : Scripts Photoshop

Dfinition des prfrences de lapplication

34

Dfinition des prfrences de lapplication


Votre script peut dfinir des prfrences lies lapplication (slecteur de couleurs, options denregistrement de fichier, paramtres des repres-grilles-tranches, etc.). REMARQUE : les proprits de la classe settings / lobjet Preferences correspondent aux options de la bote de dialogue Prfrences de Photoshop CS4 que vous pouvez afficher en choisissant Photoshop > Prfrences avec la version Mac OS de Photoshop ou Edition > Prfrences avec la version Windows. Pour obtenir une description de chaque prfrence, consultez lAide de Photoshop. AS Les proprits de la classe settings permettent de dfinir les prfrences de lapplication dans AppleScript. Le script suivant dfinit lunit utilise pour les rgles et le texte :
set ruler units of settings to inch units set type units of settings to pixel units

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop, recherchez la classe settings-object pour afficher toutes les proprits de paramtres que vous pouvez utiliser. VBS Lobjet Preferences est une proprit de lobjet Application. Lorsque vous utilisez lobjet Preferences dans un script VBScript, vous devez indiquer son appartenance lobjet Application.
appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches) appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels)

Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic, recherchez lobjet Preferences pour afficher toutes les proprits de paramtres que vous pouvez utiliser. Recherchez galement la proprit Preferences sur lobjet Application. JS Lobjet Preferences est une proprit de lobjet Application.
preferences.rulerUnits = Units.INCHES preferences.typeUnits = TypeUnits.PIXELS

Dans le Guide de rfrence pour les scripts Javascript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript, recherchez lobjet Preferences pour afficher toutes les proprits de paramtres que vous pouvez utiliser. Recherchez galement la proprit preferences sur lobjet Application.

Autorisation ou refus douverture de botes de dialogue


Il est important de pouvoir contrler les botes de dialogue correctement depuis un script. Lorsquune bote de dialogue saffiche, le script est interrompu jusqu ce quun utilisateur ferme la fentre. Cette solution est gnralement adapte un script interactif pour lequel un utilisateur est assis devant lordinateur. Sil sagit dun script excut automatiquement (par lots), il convient dviter lapparition de botes de dialogue afin de ne pas interrompre lexcution du script. Vous utilisez la proprit display dialogs (DisplayDialogs/displayDialogs) de lobjet Application pour contrler laffichage ou non des botes de dialogue. REMARQUE : lutilisation de botes de dialogue dans votre script quivaut peu prs lutilisation de points darrt dans un script Photoshop.

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

35

AS

Le script suivant empche laffichage de botes de dialogue :


set display dialogs to never

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop, recherchez la Class application pour trouver les valeurs que vous pouvez utiliser pour la proprit display dialogs. VBS Pour dfinir les prfrences relatives aux botes de dialogue, utilisez la proprit DisplayDialogs de lobjet Application.
appRef.DisplayDialogs = 3 'for PsDialogModes --> 3 (psDisplayNoDialogs) DisplayDialogs tant une proprit de lobjet Application, vous devez rfrencer lobjet Application dans le script pour obtenir la proprit.

Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic, recherchez la proprit DisplayDialogs de lobjet Application. Vous verrez que le type de valeur de cette proprit est la constante PsDialogModes. Vous pouvez galement rechercher les options pour PsDialogModes. JS Pour dfinir les prfrences relatives aux botes de dialogue, utilisez la proprit displayDialogs de lobjet Application.
displayDialogs = DialogModes.NO

Dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript, recherchez la proprit displayDialogs de lobjet Application, puis recherchez la constante DialogModes.

Utilisation du modle dobjet de Photoshop


Cette section comporte des informations sur lutilisation des objets du modle dobjet de Photoshop. Pour plus de dtails sur les modles dobjet, reportez-vous au guide Introduction to Scripting (Introduction aux scripts) et la section Modle dobjet de Photoshop , page 11.

Utilisation de lobjet Application


Cette section explique comment et quand utiliser lobjet Application dans un script. Elle explique galement comment utiliser certaines proprits de lobjet Application. Vous utilisez les proprits et commandes de lobjet Application pour travailler avec la fonctionnalit Photoshop et les objets tels que les suivants :

Paramtres ou prfrences globaux de Photoshop, tels que les valeurs dunit ou les paramtres de couleur (voir la section Dfinition des prfrences de lapplication , page 34). Documents : vous pouvez ajouter ou ouvrir des documents et dfinir le document actif(voir les sections Ouverture dun document , page 30 et Dfinition de lobjet actif , page 26). Actions : vous pouvez excuter des actions cres soit par lcriture de scripts, soit en utilisant le panneau Scripts de lapplication Photoshop (voir la section Gestionnaire de scripts , page 77).

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

36

Vous pouvez utiliser les proprits de lobjet Application pour obtenir des informations, notamment :

Liste des polices installes sur le systme.

AS : dfinissez theFonts sur fonts REMARQUE : en AppleScript, fonts est une collection spare, qui ne requiert pas de rfrence lobjet application pour tre rcupre.

VBS : dfinissez fontsInstalled = AppRef.Fonts JS : var fontsInstalled = app.fonts

Espace de mmoire inutilis, disponible pour Adobe Photoshop, laide de la proprit free memory (FreeMemory/freeMemory) de lobjet Application. Emplacement du dossier Prfrences, laide de la proprit preferences folder (PreferencesFolder/preferencesFolder) de lobjet Application.

Pour plus de dtails, recherchez les proprits de lobjet Application dans le guide de rfrence ou dans lexplorateur dobjets correspondant au langage utilis.

Utilisation de lobjet Document


Lobjet Document peut reprsenter tout document ouvert dans Photoshop. Un objet Document sapparente un fichier, ou encore une zone de travail. Lobjet Document permet de raliser les oprations suivantes :

Accs aux objets contenus dans lobjet Document, par exemple ArtLayer ou Channel (voir la section Modle dobjet de Photoshop , page 11). Manipulation dun objet Document spcifique laide de commandes ou de mthodes. Par exemple, vous pouvez recadrer, faire pivoter ou appliquer une symtrie la zone de travail, redimensionner limage ou la zone de travail et rogner limage (voir la section Manipulation dun objet document , page 36 pour obtenir une dmonstration). Rcupration du calque actif (voir la section Dfinition du calque actif , page 28). Enregistrement du document actif (voir la section Enregistrement dun document , page 32). Oprations de copier-coller dans le document actif ou entre plusieurs documents (voir la section Prsentation de linteraction avec le Presse-papiers , page 57).

Manipulation dun objet document


Les exemples suivants illustrent les oprations suivantes :

Enregistrement des prfrences dunit de la rgle existantes et dfinition de lunit de la rgle en pouces Ouverture dun fichier existant en tant que document ( laide du fichier Ducky.tif ) Modification de la taille de limage 4 pouces de large sur 4 pouces de haut (10 cm x 10 cm) Modification de la taille de la fentre de document (ou zone de travail) 4 pouces de large sur 4 pouces de haut (10 cm x 10 cm)

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

37

Rognage du haut et du bas de limage Recadrage de limage Application dune symtrie lensemble de la fentre Restauration des units de rgle dorigine

REMARQUE : reportez-vous la section Dfinition des prfrences de lapplication , page 34 pour plus de dtails sur les units de mesure des rgles. AS
tell application "Adobe Photoshop CS4" set saveUnit to ruler units of settings set ruler units of settings to inch units set duckFile to alias "OS X 10.4.8 US:Applications:Adobe Photoshop CS4:Samples:Ducky.tif" open duckFile set docRef to current document resize image docRef width 4 height 4 resize canvas docRef width 4 height 4 trim docRef basing trim on top left pixel with top trim and bottom trim without left trim and right trim set ruler units of settings to pixel units crop current document bounds {100, 200, 400, 500} angle 45 width 20 height 20 flip canvas docRef direction horizontal set ruler units of settings to saveUnit end tell Dim appRef, docRef Set appRef = CreateObject("Photoshop.Application") 'save original ruler units, then set ruler units to inches startRulerUnits = appRef.Preferences.RulerUnits appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches) Set docRef = appRef.Open(appRef.Path & "\Samples\Ducky.tif") docRef.ResizeImage 4,4 docRef.ResizeCanvas 4,4 'Trim the document with ' type = 1 (psTopLeftPixel) ' top=true, left=false, bottom=true, right=false docRef.Trim 1,True,False,True,False 'the crop command uses unit values 'so change the ruler units to pixels appRef.Preferences.RulerUnits = 1 ' (psPixels) 'Crop the document with ' angle=45, width=20,height=20 docRef.Crop Array(100,200,400,500),45,20,20 docRef.FlipCanvas 1 ' psHorizontal 'restore ruler units appRef.Preferences.RulerUnits = startRulerUnits

VBS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

38

JS

//save original ruler units, then assign it to inches startRulerUnits = app.preferences.rulerUnits app.preferences.rulerUnits = Units.INCHES //get a reference to the file, and open it var fileRef = new File(app.path + "/samples/ducky.tif") var docRef = app.open(fileRef) //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) //the crop command uses unit values //so change the ruler units to pixels app.preferences.rulerUnits =Units.PIXELS docRef.crop (new Array(100,200,400,500), 45, 20, 20) docRef.flipCanvas(Direction.HORIZONTAL) //restore original preferences app.preferences.rulerUnits = startRulerUnits

Utilisation des objets calque


Le modle dobjet de Photoshop comporte deux types dobjets calque :

Les objets ArtLayer, qui peuvent comporter des contenus dimage et qui sont pour ainsi dire quivalents aux calques dans lapplication Photoshop. REMARQUE : un objet ArtLayer peut galement contenir du texte si vous utilisez la proprit kind pour dfinir le type de lobjet ArtLayer sur calque de texte.

Les objets Layer Set, qui peuvent contenir zro ou plusieurs objets ArtLayer.

Lorsque vous crez un calque, vous devez spcifier si vous crez 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-mmes dotes dune commande add/Add/add(). Vous pouvez rfrencer (mais pas ajouter) des objets ArtLayer et LayerSet laide de la collection Layers, car contrairement aux autres collections, celle-ci nest pas dote de commande add/Add/add().

Cration dun objet ArtLayer


Les exemples ci-dessous expliquent comment crer un objet ArtLayer rempli avec du rouge au dbut du document actif. AS
tell application "Adobe Photoshop CS4" make new document make new art layer at beginning of current document with properties {name:"MyBlendLayer", blend mode:normal} select all current document fill selection of current document with contents {class:RGB color, red:255, green:0, blue:0} end tell

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

39

VBS

Dim appRef Set appRef = CreateObject("Photoshop.Application") ' 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 ' Select all so we can apply a fill to the selection appRef.ActiveDocument.Selection.SelectAll ' Create a color to be used with the fill command Dim colorObj Set colorObj = CreateObject("Photoshop.SolidColor") colorObj.RGB.Red = 255 colorObj.RGB.Green = 0 colorObj.RGB.Blue = 0 ' Now apply fill to the current selection appRef.ActiveDocument.Selection.Fill colorObj

JS

//make a new document app.documents.add() // Create a new art layer at the beginning of the current document var layerRef = app.activeDocument.artLayers.add() layerRef.name = "MyBlendLayer" layerRef.blendMode = BlendMode.NORMAL // Select all so we can apply a fill to the selection app.activeDocument.selection.selectAll // Create a color to be used with the fill command var colorRef = new solidColor colorRef.rgb.red = 255 colorRef.rgb.green = 100 colorRef.rgb.blue = 0 // Now apply fill to the current selection app.activeDocument.selection.fill(colorRef)

Cration dun objet Layer Set


Les exemples suivants montrent comment crer un objet Layer Set aprs la cration dun premier objet ArtLayer dans le document actif : AS
tell application "Adobe Photoshop CS4" make new document with properties {name:"My Document"} make new art layer at beginning of current document make new layer set after layer 1 of current document end tell

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

40

VBS

Dim appRef Set appRef = CreateObject("Photoshop.Application") 'Make a new document and a first layer in the document appRef.Documents.Add() appRef.ActiveDocument.ArtLayers.Add() ' Get a reference to the first layer in the document Dim layerRef Set layerRef = appRef.ActiveDocument.Layers(1) ' Create a new LayerSet (it will be created at the beginning of the document) Dim newLayerSetRef Set newLayerSetRef = appRef.ActiveDocument.LayerSets.Add ' Move the new layer to after the first layer newLayerSetRef.Move layerRef, 4 'psPlaceAfter

JS

// make a new document and a layer in the document app.documents.add() app.activeDocument.artLayers.add() // Get a reference to the first layer in the document var layerRef = app.activeDocument.layers[0] // Create a new LayerSet (it will be created at the beginning of the // document) var newLayerSetRef = app.activeDocument.layerSets.add() // Move the new layer to after the first layer newLayerSetRef.move(layerRef, ElementPlacement.PLACEAFTER)

Rfrencement des objets ArtLayer


Lorsque vous crez un calque dans lapplication Photoshop (plutt quun script), le calque est ajout au panneau Calques, et un numro lui est attribu. Ce numro fait office de nom et ne correspond pas au numro dindex des objets ArtLayer crs 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 lindex. Par exemple, si votre document compte quatre calques, lapplication Photoshop les intitule Calque darrire-plan, Calque 1, Calque 2 et Calque 3. Le Calque 3 est gnralement en haut de la liste dans le panneau Calques, car il a t ajout en dernier. Vous pouvez utiliser la syntaxe suivante pour faire rfrence aux calques par le nom qui leur a t attribu par lapplication : AS
layer 1 of layer set 1 of current document

REMARQUE : la diffrence des rfrences dobjets en JavaScript ou VBScript, les noms de rfrences dobjets AppleScript ne sont pas constants. Fait rfrence un guide de langage AppleScript ou un manuel contenant des informations sur le rfrencement dun fichier laide de as alias ou de to a reference to file. VBS JS
Layers("Layer 3").name layers["Layer 3"].name //using the collection name and square brackets for the collection

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

41

Utilisation des objets Layer Set


Les calques existants peuvent tre organiss en groupes de calques. Les exemples suivants montrent comment crer un objet Layer Set, dupliquer un objet ArtLayer existant et dplacer ce dernier dans le groupe de calques. AS
set current document to document "My Document" set layerSetRef to make new layer set at end of current document set newLayer to duplicate layer "Layer 1" of current document to end of current document move newLayer to end of layerSetRef

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 mme mthode.


Dim appRef, docRef Set appRef = CreateObject("Photoshop.Application") 'Make a new document and a first layer in the document Set docRef = appRef.Documents.Add() appRef.ActiveDocument.ArtLayers.Add() Set layerSetRef = docRef.LayerSets.Add() Set layerRef = docRef.ArtLayers(1).Duplicate(layerSetRef, 2)

JS

En JavaScript, vous pouvez placer le calque lors de la duplication.


// create a document and an initial layer var docRef = app.documents.add() docRef.artLayers.add() var layerSetRef = docRef.layerSets.add() var layerRef = docRef.artLayers[0].duplicate(layerSetRef, ElementPlacement.PLACEATEND)

Liaison dobjets calque


Les scripts permettent galement de lier des calques entre eux et de rompre ces liens. La liaison de calques permet de dplacer ou transformer les calques en une seule instruction. AS
make new art layer in current document with properties {name:"L1"} make new art layer in current document with properties {name:"L2"} link art layer "L1" of current document with art layer "L2" of current document

Recherchez la commande link dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop.

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

42

VBS

Set layer1Ref = docRef.ArtLayers.Add() Set layer2Ref = docRef.ArtLayers.Add() layer1Ref.Link layer2Ref

Recherchez Link comme mthode de lobjet ArtLayer dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic. Recherchez galement Add comme mthode de lobjet ArtLayers. JS
var layerRef1 = docRef.artLayers.add() var layerRef2 = docRef.artLayers.add() layerRef1.link(layerRef2)

Recherchez link() comme mthode de lobjet ArtLayer dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript. Recherchez galement Add() comme mthode de lobjet ArtLayers.

Application de styles aux calques


REMARQUE : cette procdure correspond faire glisser un style du panneau Styles de Photoshop vers un calque. Votre script peut appliquer des styles un objet ArtLayer. Pour appliquer un style dans un script, utilisez la commande apply layer style/ApplyStyle/applyStyle() (le nom du style doit tre entr comme argument entre guillemets doubles droits). REMARQUE : les noms des styles de calque tiennent compte de la distinction entre majuscules et minuscules. Consultez lAide de Photoshop pour obtenir une liste de styles et pour plus de dtails sur les styles et le panneau Styles. Les exemples suivants dfinissent le style de calque Puzzle pour le calque nomm L1. AS
apply layer style art layer "L1" of current document using "Puzzle (Image)"

Recherchez la commande apply layer style dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop. VBS
docRef.ArtLayers("L1").ApplyStyle "Puzzle (Image)"

Recherchez ApplyStyle comme mthode de lobjet ArtLayer dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic. JS
docRef.artLayers["L1"].applyStyle("Puzzle (Image)")

Recherchez applyStyle() comme mthode de lobjet ArtLayer dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript.

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

43

Utilisation de lobjet Text Item


Vous pouvez changer un objet ArtLayer existant en un calque de texte, cest--dire un objet Text Item, si le calque est vide. A linverse, vous pouvez changer un objet Text Item en un objet ArtLayer. Cette procdure inverse pixellise le texte du calque. Lobjet Text Item est une proprit de lobjet ArtLayer. Cependant, pour crer un calque de texte, vous devez crer un objet ArtLayer puis dfinir la proprit kind/Kind/kind du calque graphique sur text layer (2 (psTextLayer)/ LayerKind.TEXT ). Pour dfinir ou manipuler du texte dans un calque de texte, vous utilisez lobjet text-object (TextItem/TextItem), contenu dans la proprit text object/TextItem/textItem de lobjet ArtLayer.

Cration dun objet Text Item


Les exemples suivants crent un objet ArtLayer , puis utilisent la proprit kind pour le convertir en calque de texte. AS VBS
make new art layer in current document with properties { kind: text layer } set newLayerRef = docRef.ArtLayers.Add() newLayerRef.Kind = 2 '2 indicates psTextLayer var newLayerRef = docRef.artLayers.add() newLayerRef.kind = LayerKind.TEXT

JS

Reportez-vous la section Modle dobjet de Photoshop , page 11 pour plus de dtails sur la relation entre les objets ArtLayer et TextItem. Recherchez galement les lments suivants :

Les proprits Kind/kind et TextItem/textItem de lobjet ArtLayer dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4, dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic et lafficheur de modles dobjets ExtendScript. Les proprits kind et text object de la classe art layer dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop.

Dfinition dun type de calque


Les exemples suivants utilisent une instruction if pour vrifier si un calque existant est un calque de texte. AS
if (kind of layerRef is text layer) then ... endif If layerRef.Kind = 2 Then '2 indicates psTextLayer ... End If if (newLayerRef.kind == LayerKind.TEXT) {...}

VBS

JS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

44

Ajout et manipulation de texte dans un objet Text Item


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 Set textLayerRef = docRef.ArtLayers.Add() textLayerRef.Kind = 2 textLayerRef.Name = "my text" Set textItemRef = docRef.ArtLayers("my text").TextItem textItemRef.Contents = "Hello, World!" textItemRef.Justification = 3 '3 = psRight (for the constant value psJustification)

VBS

JS

var textLayerRef = docRef.artLayers.add() textLayerRef.name = "my text" textLayerRef.kind = LayerKind.TEXT var textItemRef = docRef.artLayers["my text"].textItem textItemRef.contents = "Hello, World!" textItemRef.justification = Justification.RIGHT

REMARQUE : lobjet text-object (TextItem/TextItem) possde une proprit kind Kind/kind) qui peut tre dfinie soit sur point text (psPointText/TextType.POINTTEXT ), soit sur paragraph text (psParagraphText/TextType.PARAGRAPHTEXT.). Lorsquun nouvel objet text-object est cr, sa proprit kind est automatiquement dfinie sur point text. Les proprits height, width et leading de lobjet text-object sont autorises uniquement si la proprit kind du texte est dfinie sur paragraph text. Pour vous familiariser avec les objets, proprits et commandes prsents dans les guides de rfrence pour les scripts, utilisez lune des mthodes suivantes :

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop, recherchez les proprits et les mthodes text-object. Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic, recherchez la proprit TextItem de lobjet DisplayDialogs. Pour connatre les proprits et mthodes disponibles avec un calque de texte, recherchez lobjet TextItem.

Dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript, recherchez la proprit textItem de lobjet ArtLayer. Pour connatre les proprits et mthodes disponibles avec un calque de texte, recherchez lobjet TextItem.

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

45

Utilisation des objets Selection


Vous utilisez un objet Selection pour restreindre laction de vos scripts une seule section spcifique et slectionne de votre document ou un calque dans un document. Par exemple, vous pouvez appliquer des effets une slection ou copier la slection active dans le Presse-papiers. Lobjet Selection est une proprit de lobjet Document. Recherchez les lments suivants pour plus de dtails :

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop, recherchez la commande select. Recherchez galement la proprit selection de lobjet Document et lobjet selection-object. Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic, recherchez Selection comme proprit de lobjet Document. Recherchez galement Select comme mthode de lobjet Selection. Dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript, recherchez selection comme proprit de lobjet Document. Recherchez galement select comme mthode de lobjet Selection.

REMARQUE : vous ne pouvez pas crer un objet Selection. La proprit selection (Selection/selection) sur lobjet Document contient un objet selection prexistant pour le document. Utilisez la commande select (Select/select) pour spcifier la zone de slection.

Cration et dfinition dune slection


Pour crer une slection, utilisez la commande select/Select/select() de lobjet Selection. Pour dfinir une slection, vous devez spcifier les coordonnes lcran qui correspondent aux angles de la slection. Le document tant un objet en deux dimensions, les coordonnes sont spcifies laide des axes x et y, comme suit :

Laxe x sert spcifier la position horizontale dans la zone de travail. Laxe y sert spcifier la position verticale dans la zone de travail.

Lorigine dans Photoshop, cest--dire la position o laxe x = 0 et laxe y = 0, est le coin suprieur gauche de lcran. Le coin oppos, soit le coin infrieur droit, correspond au point extrme de la zone de travail. Par exemple, si la zone de travail mesure 1000 x 1000 pixels, les coordonnes du coin infrieur droit sont axe x = 1000 et axe y = 1000. Vous spcifiez les points de coordonnes qui dcrivent la forme slectionner dans un tableau, qui devient son tour la valeur dargument ou de paramtre de la commande select/Select/select(). Les exemples suivants supposent que lunit de mesure des rgles est le pixel et que vous crez une slection ainsi : 1. Cration dune variable pour contenir un nouveau document de 500 x 500 pixels. 2. Cration dune variable pour contenir les coordonnes de la zone slectionne (c.--d. lobjet Selection). 3. Ajout dun tableau comme valeur de la variable de la slection.

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

46

4. Utilisation de la proprit selection de lobjet Document et de la commande select de lobjet Selection pour slectionner une zone. Les coordonnes de la zone correspondent aux valeurs de la variable de la slection. AS
set docRef to make new document with properties {height:500, width:500} set shapeRef to {{0, 0}, {0, 100}, {100, 100}, {100, 0}} select current document region shapeRef DocRef = appRef.Documents.Add ShapeRef = Array(Array(0, 0), Array(0, 100), Array(100,100), Array(100,0)) docRef.Selection.Select ShapeRef var docRef = app.documents.add(500, 500) var shapeRef = [ [0,0], [0,100], [100,100], [100,0] ] docRef.selection.select(shapeRef)

VBS

JS

Application dun contour au cadre de slection


Les exemples ci-dessous utilisent la commande stroke (Stroke/stroke()) de lobjet Selection pour tracer les bordures autour de la slection active et dfinissent la couleur ainsi que la largeur du contour. REMARQUE : le paramtre de transparence ne peut pas tre utilis pour les calques darrire-plan. AS
stroke selection of current document using color {class:CMYK color, cyan:20, magenta:50, yellow:30, black:0} width 5 location inside blend mode vivid light opacity 75 without preserving transparency Set strokeColor = CreateObject ("Photoshop.SolidColor") strokeColor.CMYK.Cyan = 20 strokeColor.CMYK.Magenta = 50 strokeColor.CMYK.Yellow = 30 strokeColor.CMYK.Black = 0 appRef.ActiveDocument.Selection.Stroke strokeColor, 5, 1, 15, 75, False strokeColor = new solidColor strokeColor.cmyk.cyan = 20 strokeColor.cmyk.magenta = 50 strokeColor.cmyk.yellow = 30 strokeColor.cmyk.black = 0 app.activeDocument.selection.stroke (strokeColor, 2, StrokeLocation.OUTSIDE, ColorBlendMode.VIVIDLIGHT, 75, false)

VBS

JS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

47

Inversion des slections


Vous pouvez appliquer la commande invert (Invert/invert()) de lobjet Selection une slection, afin de pouvoir travailler sur le reste du document, calque ou couche tout en protgeant la slection.

AS : VBS : JS :

invert selection of current document selRef.Invert selRef.Invert()

Dilatation, contraction et contour progressif des slections


Vous pouvez modifier la taille dune zone slectionne laide des commandes Dilater, Contracter et Contour progressif. Les valeurs sont transmises dans lunit de mesure des rgles stocke dans les prfrences Photoshop et peuvent tre modifies par vos scripts. Si lunit de mesure des rgles est le pixel, la valeur de la dilatation, de la contraction et du contour progressif des exemples suivants sera de cinq pixels. Reportez-vous la section Dfinition des prfrences de lapplication , page 34 pour savoir comment modifier lunit de mesure des rgles. 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 Dim selRef Set selRef = appRef.ActiveDocument.Selection selRef.Expand 5 selRef.Contract 5 selRef.Feather 5

VBS

JS

var selRef = app.activeDocument.selection selRef.expand( 5 ) selRef.contract( 5 ) selRef.feather( 5 )

Remplissage dune slection


Vous pouvez remplir une slection avec une couleur ou avec un tat dhistorique. Pour remplir avec une couleur : AS
fill selection of current document with contents {class:RGB color, red:255, green:0, blue:0} blend mode vivid light opacity 25 without preserving transparency Set fillColor = CreateObject("Photoshop.SolidColor") fillColor.RGB.Red = 255 fillColor.RGB.Green = 0 fillColor.RGB.Blue = 0 selRef.Fill fillColor, 15, 25, False

VBS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

48

JS

var fillColor = new SolidColor() fillColor.rgb.red = 255 fillColor.rgb.green = 0 fillColor.rgb.blue = 0 app.activeDocument.selection.fill( fillColor, ColorBlendMode.VIVIDLIGHT, 25, false)

Pour remplir la slection courante avec le dixime lment de ltat dhistorique : REMARQUE : reportez-vous la section Utilisation des objets history state , page 50 pour plus de dtails sur les objets History State. AS VBS JS
fill selection of current document with contents history state 10 of current document selRef.Fill docRef.HistoryStates(10) selRef.fill(app.activeDocument.historyStates[9])

Chargement et stockage des slections


Vous pouvez stocker des objets Selection dans les objets Channel, ou les charger depuis ces objets. Pour stocker une slection dans une couche, sa proprit kind (Kind/kind) doit tre dfinie sur un type qui indique que la couche contient une zone slectionne : selected area channel (psSelectedAreaAlphaChannel)/ ChannelType.SELECTEDAREA). Les exemples ci-dessous utilisent la commande store (Store/store()) de lobjet Selection pour stocker la slection active dans une couche nomme My Channel et dilater la slection avec une slection quelconque qui se trouve actuellement dans cette couche. AS
set myChannel to make new channel of current document with properties {name:"My Channel", kind::selected area channel} store selection of current document into channel "My Channel" of current document combination type extended Set chanRef = docRef.Channels.Add chanRef.Name = "My Channel" chanRef.Kind = 3 'psSelectedAreaAlphaChannel docRef.Selection.Store docRef.Channels("My Channel"), 2 'PsSelectionType is 2 (psExtendSelection)

VBS

JS

var chanRef = docRef.channels.add() chanRef.name = "My Channel" chanRef.kind = ChannelType.SELECTEDAREA docRef.selection.store(docRef.channels["My Channel"], SelectionType.EXTEND)

Pour restaurer une slection enregistre dans un objet Channel, utilisez la mthode load
(Load/load).

AS

set myChannel to make new channel of current document with properties {name:"My Channel"} load selection of current document from channel "My Channel" of current document combination type extended selRef.Load docRef.Channels("My Channel"), 2 'PsSelectionType is 2 (psExtendSelection)

VBS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

49

JS

selRef.load (docRef.channels["My Channel"], SelectionType.EXTEND)

Reportez-vous la section Prsentation de linteraction avec le Presse-papiers , page 57 pour savoir comment copier, couper et coller des slections.

Utilisation des objets Channel


Lobjet Channel vous permet daccder la plupart des fonctions disponibles dans les couches Photoshop. Vous pouvez crer, supprimer et dupliquer des couches ou rcuprer lhistogramme dune couche et modifier son type. Reportez-vous la section Cration dobjets dans un script , page 24 pour plus de dtails sur la cration dun objet Channel dans les scripts. Utilisez la proprit kind pour dfinir ou connatre le type dun objet Channel. Reportez-vous la section Chargement et stockage des slections , page 48 pour obtenir des exemples de script illustrant la cration dune couche de zone masque.

Changement des types de couches


Vous pouvez modifier le type de toutes les couches, lexception des couches de composante. Les exemples suivants montrent comment modifier une couche de zone masque en couche de zone slectionne : REMARQUE : les couches de composante sont lies au mode de document. Consultez lAide de Photoshop pour plus de dtails sur les couches, les types de couches et les modes de document. AS VBS JS
set kind of myChannel to selected area channel channelRef.ind = 3 'for psSelectedAreaAlphaChannel 'from the constant value PsChannelType channelRef.kind = ChannelType.SELECTEDAREA

Utilisation de lobjet Document Info


Dans Photoshop, vous pouvez associer des informations un document en choisissant Fichier > Informations. Pour effectuer cette tche dans un script, vous devez utiliser lobjet info-object (DocumentInfo/DocumentInfo), stock dans la proprit info (Info/info) de lobjet Document. Les exemples suivants montrent comment utiliser lobjet DocumentInfo pour dfinir ltat du copyright et lURL propritaire dun document. AS
set get set set get docInfoRef to info of current document EXIF of docInfoRef copyrighted of docInfoRef to copyrighted work owner url of docInfoRef to "http://www.adobe.com" EXIF of docInfoRef

VBS

Set docInfoRef = docRef.Info docInfoRef.Copyrighted = 1 'for psCopyrightedWork docInfoRef.OwnerUrl = "http://www.adobe.com" docInfoRef = docRef.info docInfoRef.copyrighted = CopyrightedType.COPYRIGHTEDWORK docInfoRef.ownerUrl = "http://www.adobe.com"

JS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

50

Recherchez les lments suivants pour plus de dtails sur les autres types dinformations (proprits) que vous pouvez associer un document :

Dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop, recherchez les proprits et mthodes pour la classe info-object. Dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4, le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, lexplorateur dobjets Visual Basic ou lafficheur de modles dobjets ExtendScript, recherchez les proprits pour lobjet DocumentInfo.

Utilisation des objets history state


Photoshop conserve un historique des actions qui concernent les documents. Chaque fois que vous apportez un changement une image dans lapplication Photoshop, vous crez un tat dhistorique ; vous pouvez accder aux tats dhistorique dun document partir du panneau Historique en choisissant Fentre > Historique. Pour plus de dtails sur ltat dhistorique, consultez lAide de Photoshop. Dans un script, vous pouvez accder ltat dhistorique dun objet Document laide de lobjet HistoryStates, qui est une proprit de lobjet Document. Vous pouvez utiliser un objet HistoryStates pour rtablir ltat prcdent dun document ou pour remplir un objet Selection. Les exemples suivants rtablissent la forme et les proprits initiales (au premier enregistrement) du document contenu dans la variable docRef. Cette utilisation de ltat dhistorique permet dannuler des modifications apportes un document. AS VBS JS
set current history state of current document to history state 1 of current document docRef.ActiveHistoryState = docRef.HistoryStates(1) docRef.activeHistoryState = docRef.historyStates[0]

REMARQUE : le rtablissement dun tat dhistorique ne supprime pas les derniers tats de la collection de lhistorique. Utilisez la commande Purge pour supprimer les derniers tats de la collection History States, comme indiqu ci-dessous :

AS : VBS : JS :

purge history caches appRef.Purge(2) 'for psPurgeTarget --> 2 (psHistoryCaches) app.purge(PurgeTarget.HISTORYCACHES)

Lexemple ci-dessous enregistre ltat actuel, applique un filtre et rtablit ensuite ltat dhistorique 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 Set savedState = docRef.ActiveHistoryState docRef.ArtLayers(1).ApplyMotionBlur 20, 20 docRef.ActiveHistoryState = savedState savedState = docRef.activeHistoryState docRef.artLayers[0].applyMotionBlur( 20, 20 ) docRef.activeHistoryState = savedState

VBS

JS

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

51

Utilisation des objets Notifier


Lobjet Notifier sert lier un vnement un script. Par exemple, si vous souhaitez que Photoshop cre automatiquement un document lorsque vous ouvrez lapplication, vous pouvez lier un script qui cre un objet Document un vnement Open Application. REMARQUE : ce type de script quivaut slectionner Lancer lapplication dans le Gestionnaire dvnements de script (Fichier > Scripts > Gestionnaire dvnements de script) de lapplication Photoshop. Pour plus de dtails sur lutilisation du Gestionnaire dvnements de script, consultez lAide de Photoshop. La commande make (Add/add) requiert la spcification dun ID dvnement afin didentifier lvnement pour lequel dfinir la notification. Plusieurs ID dvnements sont rpertoris dans une annexe du Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, du Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 et du Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4. Certains vnements agissent galement sur plusieurs types dobjets, de mme que la commande make (Add/add) requiert un argument supplmentaire pour un ID de classe, qui permet didentifier lobjet. Par exemple, la commande New (Nouveau) sapplique aux objets Document, Art Layer et Channel. REMARQUE : vous pouvez dterminer les ID dvnement et de classe de tout vnement enregistrable laide de lcouteur de scripts (voir la section Utilisation de lcouteur de scripts pour rechercher des ID dvnements et de classes , page 85). Les exemples suivants montrent comment dfinir une notification dvnement pour un vnement douverture de document. Le script vrifie dabord que loption de notification dvnement est active, puis dfinit lvnement sur le dclenchement de lexcution du fichier Bienvenue.jsx). A la fin du script, chaque fois que vous ouvrez un document en dehors dun script, la notification se dclenche, et excute le fichier .jsx. Ce fichier .jsx affiche un message dalerte. REMARQUE : en rgle gnrale, la notification ne sapplique pas aux vnements lintrieur dun script, car ces vnements sont incorpors dans un vnement AdobeScriptAutomation Scripts. AS
tell application "Adobe Photoshop CS4" try delete notifiers end try make new notifier with properties {event:"Opn ", event file:alias "OS X 10.4.8 US:Users:psauto:Desktop:Welcome.jsx"} end tell Dim appRef,eventFile Set appRef = CreateObject("Photoshop.Application") appRef.NotifiersEnabled = True eventFile = appRef.Path & "Presets\Scripts\Event Scripts Only\Welcome.jsx" appRef.Notifiers.Add "Opn ", eventFile

VBS

JS

app.notifiersEnabled = true var eventFile = new File(app.path + "/Presets/Scripts/Event Scripts Only/Welcome.jsx") app.notifiers.add("Opn ", eventFile)

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

52

Utilisation de lobjet PathItem


Pour crer un objet PathItem, vous devez ajouter un objet PathItem llment ou la collection PathItems dun document. Pour cela, vous devez crer un ensemble dobjets PathPointInfo, qui spcifient les coordonnes des coins ou des points dancrage du trac. Puis, vous crez un ensemble dobjets SubPathInfo destins contenir les tableaux PathPoint. Une fois que les points et la portion de trac ont t crs, vous pouvez ajouter un nouvel objet PathItem. Le script suivant cre un objet PathItem en forme de ligne droite. AS
--line #1--its a straight line so the coordinates for anchor, left, and --right for each point have the same coordinates tell application "Adobe Photoshop CS4" 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"} set pathPointInfo1 to {class:path point info, kind:corner point, anchor:{100, 100}, left direction:{100, 100}, right direction:{100, 100}} set pathPointInfo2 to {class:path point info, kind:corner point, anchor:{150, 200}, left direction:{150, 200}, right direction:{150, 200}} set subPathInfo1 to {class:sub path info, entire sub path:{pathPointInfo1, pathPointInfo2}, operation:shape xor, closed:false} set newPathItem to make new path item in docRef with properties {entire path:{subPathInfo1}, name:"Line", kind:normal} end tell

VBS

Dim appRef, docRef Dim lineArray(1), lineArray2(1), lineSubPathArray(0), myPathItem Set appRef = CreateObject("Photoshop.Application") ' create a document to work with Set docRef = appRef.Documents.Add(5000, 7000, 72, "Simple Line")

'line #1--its 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

CHAPITRE 3 : Scripts Photoshop

Utilisation du modle dobjet de Photoshop

53

'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) ' stroke it so we can see something myPathItem.StrokePath(2) 'for PsToolType --> 2 (psBrush)

JS

// create a document to work with var docRef = app.documents.add(5000, 7000, 72, "Simple Line") //line #1--its 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 // Next create a SubPathInfo object, which holds the line array // in its entireSubPath property. var lineSubPathArray = new Array() lineSubPathArray[0] = new SubPathInfo() lineSubPathArray[0].operation = ShapeOperation.SHAPEXOR lineSubPathArray[0].closed = false lineSubPathArray[0].entireSubPath = lineArray //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); // stroke it so we can see something myPathItem.strokePath(ToolType.BRUSH)

CHAPITRE 3 : Scripts Photoshop

Utilisation des objets de couleur

54

Utilisation des objets de couleur


Vos scripts peuvent utiliser la mme gamme de couleurs que celle disponible via linterface utilisateur de Photoshop. Chaque modle colorimtrique possde son propre ensemble de proprits. Par exemple, la classe RGB color (RGBColor/RGBColor) contient trois proprits : red (rouge), blue (bleu) et green (vert). Pour dfinir une couleur dans cette classe, vous devez indiquer les valeurs de chacune des trois proprits. En VBScript et JavaScript, la classe SolidColor contient une proprit pour chaque modle colorimtrique. Pour utiliser cet objet, vous devez dans un premier temps crer une instance dun objet SolidColor, puis dfinir les proprits de modle colorimtrique appropries pour lobjet. Une fois quun modle colorimtrique a t attribu un objet SolidColor, ce dernier ne peut plus tre attribu un autre modle colorimtrique. Les exemples suivants montrent comment dfinir une couleur laide de la classe CMYK color. AS VBS
set foreground color to {class:CMYK color, cyan:20.0, magenta:90.0, yellow:50.0, black:50.0} 'create a solidColor array Dim solidColorRef Set solidColorRef = CreateObject("Photoshop.SolidColor") solidColorRef.CMYK.Cyan = 20 solidColorRef.CMYK.Magenta = 90 solidColorRef.CMYK.Yellow = 50 solidColorRef.CMYK.Black = 50 appRef.ForegroundColor = solidColorRef //create a solid color array var solidColorRef = new solidColor() solidColorRef.cmyk.cyan = 20 solidColorRef.cmyk.magenta = 90 solidColorRef.cmyk.yellow = 50 solidColorRef.cmyk.black = 50 foregroundColor = solidColorRef

JS

Classes de couleur unie


Les classes de couleur unie disponibles dans Photoshop sont exposes ci-dessous. Classes de couleur Solid Color

RGB Color

CMYK Color

Gray Color

HSB Color

Lab Color

No Color

CHAPITRE 3 : Scripts Photoshop

Utilisation des objets de couleur

55

Utilisation des valeurs hexadcimales pour les couleurs RVB


Vous pouvez exprimer des valeurs RVB comme valeurs hexadcimales. Une valeur hexadcimale contient trois paires de chiffres qui reprsentent le rouge, le bleu et le vert (dans cet ordre). En AppleScript, la valeur hexadcimale est reprsente par la proprit de chane hex value dans la classe RGB hex color, et vous pouvez rcuprer cette valeur hexadcimale laide de la commande convert color dcrite ci-dessous. En VBScript et JavaScript, la proprit de lobjet RGBColor se nomme HexValue/hexValue.

Obtention et conversion de couleurs


Les exemples suivants convertissent une couleur RVB en son quivalent CMJN. AS Le script suivant, qui suppose un modle colorimtrique RVB, rcupre 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 lments suivants dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop.

Proprit foreground color de la classe application (section Objets) Proprit convert (section Commandes)

VBS

Le script suivant utilise une instruction If Then et la proprit model de lobjet SolidColor pour dterminer le modle de couleur utilis. Linstruction If Then renvoie un objet SolidColor ; si elle renvoie un objet RGB, la proprit cmyk de lobjet SolidColor vous permet alors daccder la couleur avec son quivalent CMJN.
Dim someColor If (someColor.model = 2) Then someColor.cmyk 'someColor.model = 2 indicates psColorModel --> 2 (psRGBModel) End If

Recherchez les lments suivants dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic :
model et cmyk comme proprits de lobjet SolidColor

JS

Cet exemple utilise la proprit foregroundColor de lobjet Application pour obtenir la couleur dorigine convertir. La proprit cmyk de lobjet SolidColor laquelle la proprit foregroundColor fait rfrence fournit une mthode daccs lquivalent CMJN de la couleur RVB.
var someColor = foregroundColor.cmyk

Recherchez les lments suivants dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript.
cmyk comme proprit de lobjet SolidColor foregroundColor comme proprit de lobjet Application

CHAPITRE 3 : Scripts Photoshop

Utilisation de filtres

56

Comparaison des couleurs


Lutilisation de la commande equal colors (IsEqual/isEqual) vous permet de comparer des couleurs. Les instructions suivantes renvoient la valeur true si la couleur de premier plan est visuellement identique la couleur darrire-plan.

AS : VBS : JS :

if equal colors foreground color with background color then If (appRef.ForegroundColor.IsEqual(appRef.BackgroundColor)) Then if (app.foregroundColor.isEqual(backgroundColor))

Obtention dune couleur Web scurise


Pour convertir une couleur en une couleur Web scurise, utilisez la commande web safe color dAppleScript et la proprit NearestWebColor/nearestWebColor de lobjet SolidColor pour VBScript et JavaScript. AS VBS JS
set myWebSafeColor to web safe color for foreground color Dim myWebSafeColor Set myWebSafeColor = appRef.ForegroundColor.NearestWebColor var webSafeColor = new RGBColor() webSafeColor = app.foregroundColor.nearestWebColor

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 mthode de filtrage spcifique. Par exemple, pour appliquer un filtre Flou gaussien, vous devez utiliser la mthode ApplyGaussianBlur/applyGaussianBlur(). Toutes les mthodes de filtrage appartiennent lobjet ArtLayer. REMARQUE : pour plus de dtails sur les effets produits par des types de filtre individuels, consultez lAide de Photoshop. Les exemples suivants appliquent le filtre Flou gaussien au calque actif : AS Utilisez la commande filter, puis spcifiez le calque et le nom du filtre (et les options, le cas chant).
filter current layer of current document using gaussian blur with options {radius:5}

REMARQUE : dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 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 de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic, recherchez la mthode ApplyGaussianBlur et dautres mthodes de lobjet ArtLayer dont le nom commence par Apply . JS
docRef.activeLayer.applyGaussianBlur(5)

CHAPITRE 3 : Scripts Photoshop

Prsentation de linteraction avec le Presse-papiers

57

REMARQUE : dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript, recherchez la mthode applyGaussianBlur() et dautres mthodes de lobjet artLayer dont le nom commence par apply .

Filtres divers
Si le type de filtre utiliser sur le calque ne fait pas partie de linterface de scripts, vous pouvez utiliser le gestionnaire de scripts partir dun script JavaScript pour excuter un filtre. Si vous utilisez AppleScript ou VBScript, vous pouvez excuter le script JavaScript depuis votre script. Pour plus de dtails sur lutilisation du gestionnaire de scripts, reportez-vous la section Gestionnaire de scripts , page 77, ainsi qu la section Excution de scripts JavaScript partir dAS ou de VBS , page 11.

Prsentation de linteraction avec le Presse-papiers


Les commandes du Presse-papiers dans Photoshop agissent sur les objets ArtLayer, Selection et Document. Les commandes peuvent servir manipuler les objets dun seul document ou dplacer des informations dun document dans un autre. Les commandes de Presse-papiers des objets layer (ArtLayer/ArtLayer) et selection (Selection/Selection) sont les suivantes :
copy (Copy/copy) copy merged (Copy Merge parameter value/copy(merge parameter value)) cut(Cut/cut)

Les commandes de Presse-papiers de lobjet document/Document/Document sont les suivantes :


paste (Paste/paste) paste into (Paste IntoSelection parameter value/paste(intoSelection parameter value))

REMARQUE : pour plus de dtails sur les fonctions Copier, Copier avec fusion, Coller, Coller dedans et Couper, consultez lAide de Photoshop.

Utilisation des commandes copy et paste


Dans les exemples suivants, le contenu et le calque darrire-plan sont copis dans le Presse-papiers, un document est cr, puis le contenu du Presse-papiers est coll dans ce nouveau document. Les scripts considrent quun document est dj ouvert dans Photoshop et que le document possde un calque darrire-plan. REMARQUE : si le script cre un document dans lequel vous collez le contenu du Presse-papiers, assurez-vous que le document utilise la mme unit de mesure que celle du document dorigine (voir la section Dfinition des prfrences de lapplication , page 34).

CHAPITRE 3 : Scripts Photoshop

Prsentation de linteraction avec le Presse-papiers

58

AS

REMARQUE : sous Mac OS, Photoshop doit tre lapplication de premier plan lors de lexcution de ces commandes. Vous devez utiliser la commande activate pour activer lapplication avant dexcuter les commandes du Presse-papiers.
tell application "Adobe Photoshop CS4" 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

VBS

'make firstDocument the active document Set docRef = appRef.ActiveDocument docRef.ArtLayers("Background").Copy Set newDocRef = appRef.Documents.Add(8, 6, 72, "New Doc") newDocRef.Paste

JS

//make firstDocument the active document var docRef = app.activeDocument docRef.artLayers["Background"].copy() var newDocRef = app.documents.add(8, 6, 72, "New Doc") newDocRef.paste()

Utilisation de la commande/mthode copy merged


Vous pouvez galement raliser une copie avec fusion pour copier lensemble des calques visibles dans la zone slectionne. En AppleScript, vous utilisez la commande copy merged. Pour VBScript et JavaScript, vous utilisez la commande Copy/copy, en transmettant une valeur de True/true pour le paramtre facultatif merge. AS REMARQUE : sous Mac OS, Photoshop doit tre lapplication de premier plan lors de lexcution de ces commandes. Vous devez utiliser la commande activate pour activer lapplication avant dexcuter les commandes du Presse-papiers.
set docRef to make new document make new art layer of docRef select all of docRef copy merged selection of docRef

VBS

docRef.Selection.Copy True

Recherchez la mthode Copy pour les objets ArtLayer et Selection dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic. JS
docRef.selection.copy(true)

Recherchez la mthode Copy() pour les objets ArtLayer et Selection dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript.

CHAPITRE 3 : Scripts Photoshop

Utilisation des units

59

Utilisation des units


Photoshop fournit deux rgles pour les documents. Vous pouvez dfinir les units de mesure pour les rgles dans votre script laide de proprits sur lobjet settings-object (Preferences/Preferences). Les rgles sont les suivantes :

Une rgle graphique, utilise pour la plupart des mesures ou oprations lies aux prsentations graphiques dans un document dont la hauteur, la largeur et la position sont spcifies. Vous dfinissez des types dunit de mesure pour la rgle graphique laide de la proprit ruler units (RulerUnits/rulerUnits).

Une rgle texte, qui devient active lors de lutilisation de loutil Texte. Vous dfinissez des types dunit de mesure pour la rgle de texte laide de la proprit type units (TypeUnits/typeUnits).

REMARQUE : ces paramtres correspondent ceux figurant dans la bote de dialogue Prfrences de Photoshop sous Photoshop > Prfrences > Units et rgles sous Mac OS ou Edition > Prfrences > Units et rgles sous Windows.

Valeurs dunit
Tous les langages prennent en charge les chiffres entiers pour les valeurs dunit. Ces valeurs sont traites comme tant du type actuellement spcifi pour la rgle approprie. Par exemple, si lunit de la rgle est dfinie en pouces, linstruction VBScript suivante dfinit la taille dun document sur 3 x 3 pouces :
docRef.ResizeImage 3,3

Si lunit de la rgle est dfinie sur pixels, le document sera de 3 x 3 pixels. Assurez-vous de dfinir lunit de la rgle en fonction de votre script, afin dobtenir les rsultats escompts lors de lexcution du script. Une fois le script excut, vous devez rtablir les paramtres dorigine de la rgle sils ont t modifis dans le script. Reportez-vous la section Dfinition des units de rgle et de texte dans un script , page 62 pour obtenir des explications sur la dfinition des units. Pour plus de dtails sur les types de valeurs dunit disponibles, consultez lAide de Photoshop.

Types de valeurs dunit spciaux


Les valeurs dunit utilises par Photoshop sont des units de longueur, reprsentant des valeurs de mesure linaire. Les pixels et les pourcentages sont galement pris en charge. Mme si ces deux types de valeurs dunit ne sont pas, proprement parler, des valeurs de longueur, ils sont inclus car ils sont normment utiliss par Photoshop pour de multiples oprations et valeurs.

Prcisions sur lunit en AppleScript


AppleScript fournit une mthode supplmentaire pour lutilisation des valeurs dunit. Vous pouvez fournir des valeurs avec un type dunit explicite lorsque des valeurs dunit sont utilises. Lorsquune valeur avec type est fournie, son type remplace les paramtres actuels de la rgle.

CHAPITRE 3 : Scripts Photoshop

Utilisation des units

60

Par exemple, pour crer 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}

La valeur renvoye pour une proprit Photoshop qui utilise des units est renvoye comme valeur du type de rgle slectionn. Obtention de la hauteur du document cr ci-dessus :
set docHeight to height of current document

renvoie une valeur de 5, ce qui reprsente 5 pouces daprs les paramtres actuels de la rgle. En AppleScript, vous pouvez galement demander le renvoi dune valeur de proprit exprime dans un type dunit particulier.
set docHeight to height of current document as points

Cette instruction renvoie une valeur de 360 (5 pouces x 72 ppp). Les types dunits points et picas sont des points PostScript, de 72 ppp. Les types dunit traditional points et traditional picas reposent sur des valeurs classiques de dfinition de texte, de 72,27 points par pouce. Vous pouvez convertir, ou faire passer, une valeur dun 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 excut, la variable inchValue contient 1 pouce, soit 72 points convertis en pouces. Cette capacit de conversion est intgre au langage AppleScript. REMARQUE : les valeurs cm units et mm units ne peuvent pas tre utilises de cette manire avec une rfrence correspondante en cm ou mm. Ces types dunits ne sont pas reconnus par la terminologie AppleScript.

Utilisation des valeurs dunit dans des calculs


Pour utiliser une valeur dunit dans un calcul en AppleScript, vous devez dabord convertir la valeur en nombre (une valeur dunit ne peut pas tre utilise telle quelle dans les calculs). Pour multiplier une valeur en pouces, crivez :
set newValue to (inchValue as number) * 5

REMARQUE : en AppleScript, vous pouvez rcuprer et dfinir des valeurs en pixels ou en pourcentage, tout comme vous le faites avec les autres types dunits. 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, lexcution du script suivant entranerait 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 oriente pixel, il se peut que vous ne puissiez pas retrouver toujours la mme valeur que celle que vous transmettez lors de la dfinition dune valeur. Par exemple, si ruler units est dfini sur les units mm et que vous crez un document de 30 x 30, la valeur retourne pour la hauteur ou la largeur sera 29.99 si la rsolution de votre document est dfinie sur 72 ppp. Linterface de scripts suppose que les paramtres sont mesurs en ppp.

CHAPITRE 3 : Scripts Photoshop

Utilisation des units

61

Utilisation de la valeur dunit


Les tableaux suivants rpertorient les proprits des classes et objets dfinis pour utiliser des valeurs dunit. Sauf indication contraire dans le tableau, les valeurs dunit de ces proprits sont bases sur la dfinition de la rgle graphique. Pour utiliser ce tableau, utilisez lune des mthodes suivantes :

Recherchez les proprits de la classe dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop. Recherchez la proprit de lobjet dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4, le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, lexplorateur dobjets Visual Basic ou lafficheur de modles dobjets ExtendScript. Proprits dAppleScript
height width height width height width height width horizontal offset vertical offset baseline shift* first line indent* height hyphenation zone* leading* left indent* position right indent* space before* space after* width

Classe/Objet
Document

Proprits de VBScript
Height Width Height Width Height Width Height Width HorizontalOffset VerticalOffset BaselineShift* FirstLineIndent* Height HyphenationZone* Leading* LeftIndent* Position RightIndent* SpaceBefore* SpaceAfter* Width

Proprits de JavaScript
height width height width height width height width horizontalOffset verticalOffset baselineShift* firstLineIndent* height hyphenationZone* leading* leftIndent* position rightIndent* spaceBefore* spaceAfter* width

EPS open options

PDF open options

lens flare open options

offset filter

Text Item

* Valeurs dunit bases sur la dfinition de la rgle texte. Le tableau suivant rpertorie les commandes qui utilisent des valeurs dunit comme paramtres ou arguments. Dans certains cas, les paramtres sont obligatoires. Les mthodes VBScript et JavaScript sont prcdes de lobjet auquel elles appartiennent.

CHAPITRE 3 : Scripts Photoshop

Utilisation des units

62

Pour utiliser ce tableau :

Pour les commandes AppleScript, recherchez la commande dans le chapitre Commandes du Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4, ou utilisez le dictionnaire AppleScript de Photoshop. Pour les mthodes VBScript, recherchez la mthode dans le tableau Mthodes de lobjet dans le chapitre Interface du Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4, ou utilisez lexplorateur dobjets Visual Basic. Pour les mthodes JavaScript, recherchez la mthode dans le tableau Mthodes de lobjet dans le chapitre Rfrence des objets du Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4, ou utilisez lafficheur de modles dobjets ExtendScript. VBScript
Document.Crop (Bounds, Height, Width) Document.ResizeCanvas (Height, Width) Document.ResizeImage (Height, Width) Selection.Contract (By) Selection.Expand (By) Selection.Feather (By) Selection.SelectBorder (Width) Selection.Translate (DeltaX, DeltaY) Selection.TranslateBoundary (DeltaX, DeltaY)

AppleScript
crop (bounds, height, width) resize canvas (height, width) resize image (height, width) contract (by) expand (by) feather (by) select border (width) translate (delta x, delta y) translate boundary (delta x, delta y)

JavaScript
document.crop (bounds, height, width) document.resizeCanvas (height, width) document.resizeImage (height, width) selection.contract (by) selection.expand (by) selection.feather (by) selection.selectBorder (width) selection.translate (deltaX, deltaY) selection.translateBoundary (deltaX, deltaY)

Dfinition des units de rgle et de texte dans un script


Les paramtres de type dunit des deux rgles Photoshop dfinissent combien de numros sont interprts en prsence de proprits et de paramtres qui prennent en charge des valeurs dunit. Veillez dfinir les units de rgle au dbut du script et enregistrer et rtablir les paramtres dorigine une fois le script excut. AS En AppleScript, ruler units et type units sont des proprits de settings-object, accessibles via la proprit settings de lobjet Application, comme illustr ci-dessous.
set ruler units of settings to inch units set type units of settings to pixel units set point size of settings to postscript size

CHAPITRE 3 : Scripts Photoshop

Exemples de scripts JavaScript pour lautomatisation dun flux de production

63

VBS

En VBScript, RulerUnits et TypeUnits sont des proprits de lobjet Preferences, accessibles via la proprit Preferences de lobjet 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 proprits de lobjet Preferences, accessibles via la proprit Preferences de lobjet Application, comme illustr ci-dessous.
app.preferences.rulerUnits = Units.INCHES app.preferences.typeUnits = TypeUnits.PIXELS app.preferences.pointSize = PointType.POSTSCRIPT

REMARQUE : pensez rtablir les paramtres dunit initiaux lorsque le script a t excut. Reportez-vous la section Utilisation des prfrences de document , page 64 pour obtenir un exemple de ralisation.

Exemples de scripts JavaScript pour lautomatisation dun flux de production


Lexemple ci-dessous de scripts JavaScript pour lautomatisation dun flux de production est fourni avec Photoshop et explique divers types dutilisation des scripts. Ces scripts sont situs dans le dossier Paramtres prdfinis/Scripts du rpertoire de lapplication. Reportez-vous la section Cration et excution dun script JavaScript , page 20 pour plus de dtails sur le dossier Paramtres prdfinis/Scripts. Nom du script
Layer Comps to Files.jsx Layer Comps to PDF.jsx

Description Enregistre les compositions de calque sous forme de fichiers. Enregistre les compositions de calque sous forme de prsentation PDF. Enregistre les compositions de calque sous forme de galerie de photos Web. Exporte chaque calque du document dans un fichier spar. Active et dsactive les objets de notification. Traite les images Camera Raw dans divers formats de fichiers. Charge les fichiers spars dans une pile dimages dans un seul document. Combine plusieurs images dune mme scne ou image, en capturant la plage dynamique dune scne en une image HDR (High Dynamic Range).

Layer Comps to WPG.jsx

Export Layers to Files.jsx Script Events Manager.jsx Image Processor.jsx Load Files into Stack.jsx

Merge to HDR.jsx

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

64

Programmation avance de scripts


Cette section prsente comment utiliser les informations contenues dans les sections prcdentes de ce chapitre pour crer des scripts ralisant les tches suivantes :

Configuration des prfrences dun document. Application de couleur au texte. Dans cette section, vous apprendrez galement effectuer les oprations suivantes :

Cration dune rfrence un document existant. Cration dun objet calque et conversion en calque de texte.

Pixellisez le texte de sorte que les options Onde et Flou soient appliques aux mots. Dans ces sections, vous apprendrez aussi :

Slection et utilisation dune zone spcifique dun calque via la cration dun objet slection. Application de filtres Onde et Flou directionnel un texte slectionn.

REMARQUE : enregistrez le script que vous avez cr la fin de chaque leon des sections suivantes ; chaque leon se sert du script cr dans la leon prcdente.

Utilisation des prfrences de document


Les exemples de scripts de cette section activent un objet Photoshop Application puis enregistrent les paramtres de configuration par dfaut dans des variables de manire ce quils puissent tre restaurs ultrieurement lorsque le script est achev. Il sagit des configurations par dfaut que vous avez certainement dfinies dans la bote de dialogue Prfrences lorsque vous avez install et configur Photoshop pour la premire fois. REMARQUE : pour afficher ou dfinir les prfrences, choisissez la commande Photoshop > Prfrences > Units et rgles (Mac OS) ou Edition > Prfrences > Units et rgles (Windows). Ensuite, les scripts dfinissent les prfrences suivantes avec les valeurs ci-aprs : Prfrence rulers units dialog modes Valeur inches pixels never Description Utilise les pouces comme unit de mesure pour les graphiques. Utilise les pixels comme unit de mesure pour le texte. Supprime lutilisation des botes de dialogue afin que les scripts soient excuts sans intervention de lutilisateur (comme le clic sur le bouton OK) lors des diffrentes tapes de lexcution. REMARQUE : les modes de bote de dialogue ne sont pas une option dans lapplication Photoshop. Ensuite, des variables sont dclares pour stocker les dimensions du document en pouces et la rsolution du document en pixels. Puis, une rsolution daffichage est dclare et le texte Hello, World! est attribu une variable de type chane.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

65

Ensuite, une instruction if vrifie si un objet Document a t cr, puis cre un objet Document sil nen existe aucun. Enfin, les prfrences dorigine sont rtablies. AS Pour utiliser les prfrences de document : 1. Crez et excutez le script suivant (voir la section Cration et excution dun script AppleScript , page 19 pour plus de dtails).
tell application "Adobe Photoshop CS4" --make Photoshop CS4 the active (front-most) application activate --create variables for the default settings set theStartRulerUnits to ruler units of settings set theStartTypeUnits to type units of settings set theStartDisplayDialogs to display dialogs --change the settings set ruler units of settings to inch units set type units of settings to pixel units set display dialogs to never --create variables for default document settings set theDocWidthInInches to 4 set theDocHeightInInches to 2 set theDocResolution to 72 set theDocString to "Hello, World!" --check to see whether any documents are open --if none are found, create a document --use the default document settings as its properties if (count of documents) is 0 then make new document with properties {width:theDocWidthInInches, height:theDocHeightInInches, resolution:theDocResolution, name:theDocString} end if --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 > Prfrences > Units et rgles pour vrifier que les paramtres dorigine de vos prfrences ont t rtablis. 3. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. 4. Enregistrez le script sous le nom HelloWorldDoc.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

66

VBS

Pour utiliser les prfrences de document : 1. Crez le script suivant (voir la section Cration et excution dun script VBScript , page 20 pour plus de dtails).
'create variables for default preferences, new preferences Dim startRulerUnits Dim startTypeUnits Dim docWidthInInches Dim docHeightInInches Dim resolution Dim helloWorldStr Dim appRef Set appRef = CreateObject("Photoshop.Application") 'assign default preferences to save values in variables startRulerUnits = appRef.Preferences.RulerUnits startTypeUnits = appRef.Preferences.TypeUnits startDisplayDialogs = appRef.DisplayDialogs 'set new preferences and document defaults appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches) appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels) appRef.DisplayDialogs = 3 'for PsDialogModes --> 3 (psDisplayNoDialogs) docWidthInInches = 4 docHeightInInches = 2 resolution = 72 helloWorldStr = "Hello, World!" 'see if any documents are open 'if none, create one using document defaults If appRef.Documents.Count = 0 Then appRef.Documents.Add docWidthInInches, docHeightInInches, resolution, helloWorldStr End If 'restore beginning preferences appRef.Preferences.RulerUnits = startRulerUnits appRef.Preferences.TypeUnits = startTypeUnits appRef.DisplayDialogs = startDisplayDialogs Double click the file name in Windows Explorer to run the script.

2. Dans Photoshop, choisissez Edition > Prfrences > Units et rgles pour vrifier que les paramtres dorigine de vos prfrences ont t rtablis. 3. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. 4. Nommez le script HelloWorldDoc et enregistrez-le. JS Pour utiliser les prfrences de document : 1. Crez le script suivant. REMARQUE : reportez-vous la section Cration et excution dun script JavaScript , page 20 pour plus de dtails sur la cration dun script JavaScript.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

67

//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 //create and assign variables for document settings docWidthInInches = 4 docHeightInInches = 2 resolution = 72 docName = Hello World //use the length property of the documents object to //find out if any documents are open //if none are found, add a document if (app.documents.length == 0) app.documents.add(docWidthInInches, docHeightInInches, resolution, docName) //restore beginning preferences app.preferences.rulerunits = startRulerUnits app.preferences.typeunits = startTypeUnits app.displayDialogs = startDisplayDialogs

2. Nommez le script HelloWorldDoc.jsx et enregistrez-le dans le dossier Paramtres prdfinis/Scripts. 3. Ouvrez Photoshop, puis choisissez Fichier > Scripts > HelloWorldDoc pour excuter le script. 4. Choisissez la commande Edition > Prfrences > Units et rgles pour vrifier que les paramtres dorigine des prfrences ont bien t rtablis. 5. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. 6. Enregistrez le script.

Application de couleur un lment de texte


Dans cette section, nous ajoutons un calque au script HelloWorldDoc, puis nous changeons le calque en objet texte affichant le texte Hello, World! en rouge. Avant de commencer, procdez comme suit :

Assurez-vous que Photoshop est ferm. Ouvrez le fichier HelloWorldDoc dans votre diteur de scripts.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

68

AS

Pour crer et spcifier des dtails dans un texte : 1. Entrez le code suivant dans le script HelloWorldDoc immdiatement avant les instructions ( la fin du fichier) qui rtablissent les prfrences dorigine.
--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. Excutez le script complet. Patientez pendant que Photoshop excute vos commandes une par une. 3. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. REMARQUE : recherchez les classes suivantes dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop pour vous assurer que vous comprenez comment vous les avez utilises dans ce script :

Classe RGB color Classe art layer

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

69

VBS

Pour crer et spcifier des dtails dans un texte : 1. Entrez le code suivant dans le script HelloWorldDoc immdiatement avant les instructions ( la fin du fichier) qui rtablissent les prfrences dorigine.
'create a reference to the active (current) document Set docRef = appRef.ActiveDocument ' create a variable named textColor 'create a SolidColor object whose color is red 'assign the object to textColor Set textColor = CreateObject ("Photoshop.SolidColor") textColor.RGB.Red = 255 textColor.RGB.Green = 0 textColor.RGB.Blue = 0 'create an art layer object using the 'Add method of the ArtLayers class 'assign the layer to the variable newTextLayer Set newTextLayer = docRef.ArtLayers.Add() 'use the Kind property of the Art Layers class to 'make the layer a text layer newTextLayer.Kind = 2 newTextLayer.TextItem.Contents = helloWorldStr newTextLayer.TextItem.Position = Array(0.75, 1) newTextLayer.TextItem.Size = 36 newTextLayer.TextItem.Color = textColor

2. Excutez le script complet. Patientez pendant que Photoshop excute vos commandes une par une. 3. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. REMARQUE : recherchez les classes suivantes dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic pour vous assurer que vous comprenez comment vous les avez utilises dans ce script :
SolidColor ArtLayer

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

70

JS

Pour crer et spcifier des dtails dans un texte : 1. Entrez le code suivant dans le script HelloWorldDoc immdiatement avant les instructions ( la fin du fichier) qui rtablissent les prfrences dorigine.
//create a reference to the active document docRef = app.activeDocument //create a variable named textColor //create a SolidColor object whose color is red //assign the object to textColor textColor = new solidColor textColor.rgb.red = 255 textColor.rgb.green = 0 textColor.rgb.blue = 0 helloWorldText = "Hello, World!" //create a variable named newTextLayer //use the add() method of the artLayers class to create a layer object //assign the object to newTextLayer newTextLayer = docRef.artLayers.add() //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 slectionnez le script dans le menu Scripts (choisissez Fichier > Script > HelloWorldDoc). Patientez pendant que Photoshop excute vos commandes une par une. 3. Aprs avoir visualis le document dans Photoshop, fermez lapplication sans enregistrer le document. REMARQUE : recherchez les classes suivantes dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript pour vous assurer que vous comprenez comment vous les avez utilises dans ce script :
SolidColor ArtLayer. Vous pouvez constater que la valeur LayerKind.TEXT de la proprit kind utilise la constante LayerKind. Les constantes sont toujours reprsentes en majuscules dans les scripts

JavaScript Photoshop.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

71

Application dun filtre Onde


Dans cette section, nous allons appliquer un filtre Onde au texte Hello du document. Cette opration implique les tapes suivantes :

Dfinissez la largeur et la hauteur du document en pixels, puis pixellisez lobjet texte dans le calque de texte. REMARQUE : le texte tant un graphique vectoriel auquel il est impossible dappliquer un filtre Onde, il convient dans un premier temps de convertir limage en bitmap. La pixellisation convertit les images vectorielles dfinies mathmatiquement en pixels. Pour plus de dtails sur la pixellisation, consultez lAide de Photoshop.

Slectionnez la zone du calque laquelle appliquer le filtre Onde. REMARQUE : reportez-vous la section Dfinition de la zone dun objet de slection , page 71 pour vous familiariser avec le code du script effectuant cette tche.

Appliquez un filtre Onde la slection. REMARQUE : londe est une courbe sinusodale tronque.

Dfinition de la zone dun objet de slection


Pour dfinir la zone dun objet de slection, nous allons crer un tableau de coordonnes ou points spcifis en pixels dans le document. Le tableau indique les coordonnes qui dfinissent les coins extrieurs dune zone rectangulaire, commenant dans le coin suprieur gauche du document, et stendant jusqu sa moiti. REMARQUE : vous pouvez dfinir autant de points que vous le souhaitez pour une zone slectionne. Le nombre de coordonnes dtermine la forme de la slection. La dernire coordonne dfinie doit tre la mme que la premire de sorte obtenir une slection ferme. REMARQUE : reportez-vous la section Modle dobjet de Photoshop , page 11 pour plus de dtails sur les objets de slection et sur dautres objets Photoshop. Les valeurs du tableau sont, dans lordre :

Angle suprieur gauche de la slection : 0,0


0 indique la colonne la plus gauche du document. 0 indique la range du haut du document.

Angle suprieur droit de la slection : theDocWidthInPixels / 2, 0


theDocWidthInPixels / 2 indique la colonne au milieu du document, cest--dire la colonne dont la coordonne est le nombre total de colonnes dans le document divis par 2.

REMARQUE : la valeur de theDocWidthInPixels quivaut au nombre total de pixels qui dfinissent la dimension horizontale du document. Les colonnes sont agences horizontalement.
0 indique la range du haut du document.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

72

Angle infrieur droit : theDocWidthInPixels / 2, theDocHeightInPixels


theDocWidthInPixels / 2 indique le milieu du document. theDocHeightInPixels indique la range du bas du document, cest--dire la range dont la

coordonne est le nombre total de ranges dans le document. REMARQUE : la valeur de theDocHeightInPixels quivaut au nombre total de pixels qui dterminent la dimension verticale du document. Les ranges sont agences verticalement.

Coin infrieur gauche : 0, theDocHeightInPixels


0 indique la colonne la plus gauche dans le document. theDocHeightInPixels indique la range du bas dans le document.

Angle suprieur gauche de la slection : 0,0

Ferme le trac de slection sur son point de dpart.

AS

Pour slectionner une zone et lui appliquer un filtre Onde : 1. Entrez le code suivant dans le fichier de script HelloWorldDoc immdiatement avant les instructions rtablissant les prfrences dorigine :
--create new variables to contain the document objects 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 --use the rasterize command of the art layer object rasterize theTextLayer affecting text contents --create a variable named theSelRegion --assign an array of coordinates as its value set theSelRegion to {{0, 0}, {theDocWidthInPixels / 2, 0}, {theDocWidthInPixels / 2, theDocHeightInPixels}, {0, theDocHeightInPixels}, {0, 0}} --replace the document object with the selection object --so that the wave is applied only to the selected text select theDocRef region theSelRegion combination type replaced --apply the wave filter using the filter command of the --wave filter class (inherited from the filter options super class) filter current layer of theDocRef using wave filter with options {class:wave filter, number of generators:1, minimum wavelength:1, maximum wavelength:100, minimum amplitude:5, maximum amplitude:10, horizontal scale:100, vertical scale:100, wave type:sine, undefined areas:repeat edge pixels, random seed:0}

2. Choisissez le bouton Excuter pour excuter le script. 3. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. 4. Enregistrez le script dans lditeur de scripts.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

73

REMARQUE : recherchez les classes suivantes dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop pour vous assurer que vous comprenez comment vous les avez utilises dans ce script :

Classe wave filter Classe art layer : commande rasterize, commande filter Classe document : commande select, paramtre combination type

VBS

Pour slectionner une zone et lui appliquer un filtre Onde : 1. Entrez le code suivant dans le fichier de script HelloWorldDoc immdiatement avant les instructions ( la fin du fichier) qui rtablissent les prfrences dorigine :
'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 to 'convert the text in the ArtLayer object (contained in the newTextLayer variable) 'to postscript text type newTextLayer.Rasterize (1) 'create an array to define the selection property 'of the Document object 'define the selected area as an array of points in the document docRef.Selection.Select Array(Array(0, 0), _ Array(docWidthInPixels / 2, 0), _ Array(docWidthInPixels / 2, docHeightInPixels), _ Array(0, docHeightInPixels), Array(0, 0)) 'use the ApplyWave() method of the ArtLayer class 'to apply the wave of the selected text newTextLayer.ApplyWave 1, 1, 100, 5, 10, 100, 100, 1, 1, 0

2. Cliquez deux fois sur le nom du fichier dans lExplorateur de Windows pour excuter le script. 3. Aprs laffichage du document dans Photoshop, fermez le document sans lenregistrer. 4. Enregistrez le script. REMARQUE : recherchez les classes suivantes dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic pour vous assurer que vous comprenez comment vous les avez utilises dans ce script :

Classe ArtLayer : mthode ApplyWave, mthode Rasterize Classe Selection : mthode Select

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

74

JS

Pour slectionner une zone et lui appliquer un filtre Onde : 1. Entrez le code suivant dans le fichier de script HelloWorldDoc immdiatement avant les instructions rtablissant les prfrences dorigine :
//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) //create a variable to contain the coordinate values //for the selection object selRegion = Array(Array(0, 0), Array(docWidthInPixels / 2, 0), Array(docWidthInPixels / 2, docHeightInPixels), Array(0, docHeightInPixels), Array(0, 0)) //use the select method of the selection object //to create an object and give it the selRegion values //as coordinates docRef.selection.select(selRegion) newTextLayer.applyWave(1, 1, 100, 5, 10, 100, 100, WaveType.SINE, UndefinedAreas.WRAPAROUND, 0)

2. Enregistrez le script, ouvrez ensuite Photoshop, puis slectionnez le script dans le menu Scripts (choisissez Fichier > Script > HelloWorldDoc). 3. Aprs avoir visualis le document dans Photoshop, fermez lapplication sans enregistrer le document. REMARQUE : recherchez les classes suivantes dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript pour vous assurer que vous comprenez comment vous les avez utilises dans ce script :
ArtLayer

Mthode rasterize(). Vous remarquerez que largument RasterizeType.TEXTCONTENTS utilise la constante RasterizeType. Les constantes sont toujours reprsentes en majuscules dans les scripts JavaScript Photoshop. Mthode applyWave()

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

75

Application dun filtre Flou directionnel


Dans cette section, nous appliquons un filtre diffrent la seconde moiti du document. AS Pour appliquer un filtre Flou directionnel HelloWorldDoc : 1. Entrez le code suivant dans le fichier de script HelloWorldDoc immdiatement avant les instructions rtablissant les prfrences dorigine :
--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}} select theDocRef region theSelRegion combination type replaced filter current layer of theDocRef using motion blur with options {class:motion blur, angle:45, radius:5} deselect theDocRef

2. Choisissez le bouton Excuter pour excuter le script. REMARQUE : recherchez la classe motion blur dans le Guide de rfrence pour les scripts AppleScript Adobe Photoshop CS4 ou dans le dictionnaire AppleScript de Photoshop pour vous assurer que vous comprenez comment vous lavez utilise dans ce script : VBS Pour appliquer un filtre Flou directionnel HelloWorldDoc : 1. Entrez le code suivant dans le fichier de script HelloWorldDoc immdiatement avant les instructions rtablissant les prfrences dorigine :
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 lExplorateur de Windows pour excuter le script. REMARQUE : recherchez la classe ArtLayer : mthode ApplyMotionBlur dans le Guide de rfrence pour les scripts Visual Basic Adobe Photoshop CS4 ou dans lexplorateur dobjets Visual Basic pour vous assurer que vous comprenez comment vous lavez utilise dans ce script.

CHAPITRE 3 : Scripts Photoshop

Programmation avance de scripts

76

JS

Pour appliquer un filtre Flou directionnel HelloWorldDoc : 1. Entrez le code suivant dans le fichier de script HelloWorldDoc immdiatement avant les instructions rtablissant les prfrences dorigine :
//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 slectionnez le script dans le menu Scripts (choisissez Fichier > Script > HelloWorldDoc). REMARQUE : recherchez la classe ArtLayer mthode applyMotionBlur() dans le Guide de rfrence pour les scripts JavaScript Adobe Photoshop CS4 ou dans lafficheur de modles dobjets ExtendScript pour vous assurer que vous comprenez comment vous lavez utilise dans ce script.

Gestionnaire de scripts
Les scripts Photoshop vous permettent de gagner du temps en automatisant des tches rptitives. Vous pouvez crer et excuter des scripts dans linterface de lapplication laide du panneau Scripts. Il est galement possible de grer des actions dans des scripts laide dun utilitaire appel Gestionnaire de scripts. Le gestionnaire de scripts vous permet dcrire des scripts qui ciblent la fonctionnalit Photoshop sinon inaccessible dans linterface de scripts, tels que des modules externes et filtres tiers. Pour pouvoir utiliser le gestionnaire de scripts, la tche laquelle vous souhaitez accder via le gestionnaire de scripts doit tre enregistrable. Ce chapitre explique comment utiliser le gestionnaire de scripts et les objets dinterface de scripts qui lui sont associs.

Module externe Ecouteur de scripts


Avant dutiliser le gestionnaire de scripts, vous devez installer le module externe Ecouteur de scripts. Lcouteur de scripts enregistre un fichier qui contient du code correspondant aux actions effectues dans linterface utilisateur. CONSEIL : tant donn que lcouteur de scripts enregistre la plupart de vos actions, installez-le uniquement lorsque vous crez le gestionnaire de scripts. Le fait de laisser ScriptListener install en permanence engendre non seulement la cration de fichiers volumineux qui occupent la mmoire de votre disque dur mais peut aussi ralentir les performances de Photoshop. Lorsque vous effectuez des tches ou des sries de tches dans Photoshop, ScriptListener cre plusieurs fichiers qui contiennent un code reprsentant les actions effectues dans Photoshop :
ScriptingListenerJS.log contenant le code JavaScript ScriptingListenerVB.log contenant le code VBScript (Windows seulement)

Lcouteur de scripts cre ces fichiers sur le bureau. REMARQUE : il nexiste pas dinterface AppleScript pour le gestionnaire de scripts. Cependant, vous pouvez accder au gestionnaire de scripts partir dun script AppleScript en excutant un script JavaScript depuis AppleScript (voir la section Excution de code du gestionnaire de scripts JavaScript partir dun script AppleScript , page 84).

Installation de lcouteur de scripts


Le module externe ScriptListener est situ dans le dossier ..\Adobe Photoshop CS4\Scripting\Utilities. Installation de lcouteur de scripts : 1. Slectionnez le fichier Ecouteur de scripts.8li, puis choisissez la commande Edition > Copier. 2. Collez la copie du fichier lemplacement suivant :
..\Adobe Photoshop CS4\Plug-Ins\Automate

77

CHAPITRE 4 : Gestionnaire de scripts

Objets du gestionnaire de scripts

78

3. Ouvrez Photoshop. REMARQUE : si Photoshop est dj ouvert, fermez-le puis relancez-le. Cette opration permet Photoshop de charger le module externe. Dsinstallation de lcouteur de scripts : 1. Fermez Photoshop. 2. Vrifiez quune copie du fichier ScriptListener.8li existe dj dans le dossier ..\Adobe Photoshop CS4\Scripting\Utilities. 3. Supprimez le fichier Ecouteur de scripts.8li situ lemplacement suivant :
..\Adobe Photoshop CS\Plug-Ins\Automate

4. Supprimez les fichiers dhistorique ScriptingListenerJS.log et ScriptingListenerVB.log de votre bureau. REMARQUE : sous Windows, lcouteur de scripts peut continuer enregistrer les actions mme aprs avoir t retir du dossier Automatisation. Pour empcher le fichier ScriptingListenerJS.log de devenir trop volumineux, supprimez-le chaque fois que vous finissez dexcuter un script Photoshop.

Objets du gestionnaire de scripts


Les objets Action Descriptor, Action List et Action Reference font partie de la fonctionnalit Gestionnaire de scripts. Pour plus de dtails sur ces objets, consultez le guide de rfrence correspondant ou utilisez lexplorateur dobjets du langage que vous utilisez. REMARQUE : ces objets ne sont pas disponibles dans AppleScript.

Enregistrement dun script laide de lcouteur de scripts


Cette section montre comment crer un fichier dhistorique de script laide de lcouteur de scripts. Nous allons enregistrer les actions ncessaires lapplication du filtre Estampage un document (Par dfaut, le filtre Estampage est disponible uniquement via linterface Photoshop.) REMARQUE : vous devez avoir install le module externe Ecouteur de scripts dans le dossier Automatisation avant de commencer la procdure suivante (voir la section Installation de lcouteur de scripts , page 77). Cration dun script dapplication du filtre Estampage 1. Ouvrez Photoshop, puis ouvrez un document. 2. Choisissez la commande Fentre > Scripts, puis Nouveau script dans le menu du panneau Scripts. 3. Attribuez un nom au script, puis cliquez sur le bouton Enregistrer. 4. Choisissez la commande Filtre > Esthtiques > Estampage.

CHAPITRE 4 : Gestionnaire de scripts

Utilisation du gestionnaire de scripts partir dun script JavaScript

79

5. Appliquez les paramtres suivants :


Angle : 135 Hauteur : 3 Facteur : 100

6. Cliquez sur le bouton OK. 7. Vrifiez les fichiers dhistorique de script :


Sous Windows, les fichiers dhistorique apparaissent sur votre bureau. Sous Mac OS, les fichiers dhistorique apparaissent sur le bureau.

Utilisation du gestionnaire de scripts partir dun script JavaScript


Cette section montre comment utiliser le contenu du fichier dhistorique ScriptingListenerJS.log pour crer votre script. Avant de commencer, vous devez pralablement avoir enregistr une action. Lexemple utilis dans cette section suppose que vous avez suivi les instructions de la section Enregistrement dun script laide de lcouteur de scripts , page 78. Les procdures dcrites dans cette section utilisent le gestionnaire de scripts pour rendre le filtre Estampage disponible dans linterface de scripts. Cration dun script JavaScript partir du rsultat de lcouteur de scripts 1. Utilisez lune des mthodes suivantes :

Ouvrez le fichier ScriptingListenerJS.log sur le bureau.

Un code similaire lexemple ci-dessous apparat la fin du fichier (les nombres peuvent toutefois diffrer) :
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 : lcouteur de scripts spare les commandes consignes par des lignes horizontales composes de signes gal (=====...). Si laction la plus rcente nest pas la premire action enregistre dans le fichier dhistorique, elle se trouve la suite de la dernire ligne de signes gal et est ainsi facilement identifiable. 2. Copiez le code JavaScript associ laction destampage du fichier ScriptingListenerJS.log dans un autre fichier, appel emboss.jsx.

CHAPITRE 4 : Gestionnaire de scripts

Utilisation du gestionnaire de scripts partir dun script JavaScript

80

3. Dans le script emboss.jsx, identifiez les valeurs que vous avez utilises avec le filtre (135, 3 et 100). Remplacez les valeurs de filtre spcifies par des noms de variables. Dans lexemple suivant, la valeur 135 a t remplace 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 );

4. Incluez le code dans une fonction JavaScript. La fonction utilise dans lexemple suivant est appele 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 laide dun script JavaScript, incluez la fonction emboss dans le script JavaScript et appelez cette fonction avec les paramtres souhaits. Lexemple suivant applique le filtre Estampage avec un angle de 75, une hauteur de 2 et un facteur de 89 (voir la section Ouverture dun document , page 30 pour obtenir de laide sur lcriture de code permettant douvrir un document dans le script).
// Open the document in the script var fileRef = new File("/c/myfile") var docRef = app.open(fileRef) //Call emboss with desired parameters emboss( 75, 2, 89 ); //finish the script //include the function in the script file 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,DialogModes.NO ); }

CHAPITRE 4 : Gestionnaire de scripts

Utilisation du gestionnaire de scripts partir dun script VBS

81

6. Ouvrez Photoshop, pour appliquer le filtre Estampage en slectionnant Fichier > Scripts > Parcourir, puis en slectionnant lemplacement de votre script emboss.jsx. Slectionnez la commande Charger pour excuter le script.

Utilisation du gestionnaire de scripts partir dun script VBS


Cette section montre comment utiliser le contenu du fichier dhistorique ScriptingListenerVB.log pour crer votre script. Avant de commencer, vous devez avoir enregistr une action. Lexemple utilis dans cette section suppose que vous avez suivi les instructions de la section Enregistrement dun script laide de lcouteur de scripts , page 78. Les procdures dcrites dans cette section utilisent le gestionnaire de scripts pour rendre le filtre Estampage disponible dans linterface de scripts. Cration dun script VBScript partir du rsultat de lcouteur de scripts 1. Ouvrez le fichier ScriptingListenerVB.log partir du bureau. Un code similaire lexemple ci-dessous apparat la fin du fichier (les nombres peuvent toutefois diffrer) :
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 : lcouteur de scripts spare les commandes consignes par des lignes horizontales composes de signes gal (====...). Si laction la plus rcente nest pas la premire action enregistre dans le fichier dhistorique, elle se trouve la suite de la dernire ligne de signes gal et est ainsi facilement identifiable. 2. Copiez le code VBScript associ laction destampage du fichier ScriptingListenerVB.log dans un autre fichier, appel emboss.vbs. 3. Dans le script emboss.vbs, identifiez les valeurs que vous avez utilises avec le filtre (135, 3 et 100). Remplacez les valeurs de filtre spcifies par des noms de variables. Dans lexemple suivant, 135 a t remplac par angle, 3 par height et 100 par amount.

CHAPITRE 4 : Gestionnaire de scripts

Utilisation du gestionnaire de scripts partir dun script VBS

82

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 )

4. Incluez le code dans une fonction VBScript. La fonction utilise dans lexemple suivant est appele Emboss. La cration de lobjet dapplication Photoshop doit tre lextrieur de la fonction, comme nous lexpliquerons la prochaine tape.
DIM objApp SET objApp = CreateObject("Photoshop.Application") Function Emboss( angle, height, amount ) 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 ) End Function

5. Pour appliquer le filtre Estampage un document laide dun script VBScript, incluez la fonction emboss dans le script et appelez cette fonction avec les paramtres souhaits. Lexemple suivant applique le filtre Estampage avec un angle de 75, une hauteur de 2 et un facteur de 89. Avant que le script nappelle la fonction, il doit ouvrir un document (voir la section Ouverture dun document , page 30 pour obtenir de laide sur lcriture de code permettant douvrir un document dans le script). Pour cela, le script doit accder aux modles dobjets de document (DOM) Photoshop lorsquil appelle la mthode Application.Open. Il doit donc pralablement crer lobjet Photoshop.Application.

CHAPITRE 4 : Gestionnaire de scripts

Excution de code du gestionnaire de scripts JavaScript partir dun script VBScript

83

DIM objApp SET objApp = CreateObject("Photoshop.Application") 'Open the document in the script filename = C:\MyFile DIM docRef SET docRef = objApp.Open(filename) 'Call emboss with desired parameters Call Emboss( 75, 2, 89 ) Function Emboss( angle, height, amount ) 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 ) End Function

6. Appliquez le script du filtre Estampage en cliquant deux fois sur le fichier emboss.vbs. Cette opration lance Photoshop, ouvre le fichier et applique le filtre Estampage au fichier.

Excution de code du gestionnaire de scripts JavaScript partir dun script VBScript


La mthode DoJavaScriptFile permet galement daccder du code du gestionnaire de scripts JavaScript partir dun script VBScript. Pour plus de dtails sur la mthode Application.DoJavaScriptFile, utilisez lexplorateur dobjets VBscript. Excution de code du gestionnaire de scripts JavaScript partir dun script VBScript 1. Suivez les tapes 1 4 de la section Utilisation du gestionnaire de scripts partir dun script JavaScript , page 79. Vous obtiendrez un fichier (emboss.jsx) contenant le code JavaScript suivant :

CHAPITRE 4 : Gestionnaire de scripts

Excution de code du gestionnaire de scripts JavaScript partir dun script AppleScript

84

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 excuter la fonction emboss en lui transmettant des arguments partir dun appel externe. Reportez-vous au guide Introduction to Scripting (Introduction aux scripts) pour plus de dtails sur la transmission darguments dun script VBScript un script JavaScript.
// Call emboss with values provided in the "arguments" collection emboss( arguments[0], arguments[1], arguments[2] );

3. A partir dun script VBScript, vous pouvez excuter le filtre Estampage comme suit (cet exemple suppose que le fichier emboss.jsx se trouve sur le lecteur C:\) :
Set objApp = CreateObject("Photoshop.Application") 'Open the document in the script filename = C:\MyFile DIM docRef SET docRef = objApp.Open(filename) objApp.DoJavaScriptFile "C:\emboss.jsx", Array(75, 2, 89)

Excution de code du gestionnaire de scripts JavaScript partir dun script AppleScript


AppleScript ne contient aucune fonctionnalit de gestionnaire de scripts. Cependant, vous pouvez excuter un code et des fichiers JavaScript partir de scripts AppleScript laide de la commande do javascript. Pour plus de dtails, reportez-vous au guide Introduction to Scripting (Introduction aux scripts). 1. Suivez les tapes 1 4 de la section Utilisation du gestionnaire de scripts partir dun script JavaScript , page 79. 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 ); }

CHAPITRE 4 : Gestionnaire de scripts

Utilisation de lcouteur de scripts pour rechercher des ID dvnements et de classes

85

2. A la fin du fichier emboss.jsx, ajoutez la ligne de code JavaScript suivante pour excuter la fonction emboss en lui transmettant des arguments partir dun appel externe. Reportez-vous au guide Introduction to Scripting (Introduction aux scripts) pour plus de dtails sur la transmission darguments dun script AppleScript un script JavaScript.
// Call emboss with values provided in the "arguments" collection emboss( arguments[0], arguments[1], arguments[2] );

3. Lexemple de code AppleScript suivant ouvre un document et excute le filtre Estampage :


tell application "Adobe Photoshop CS4" set theFile to alias Application:Documents:MyFile open theFile do javascript (file <path to Emboss.jsx>) with arguments { 75,2,89 } end tell

Utilisation de lcouteur de scripts pour rechercher des ID dvnements et de classes


La section explique comment utiliser ScriptListener pour dterminer des ID dvnements et des ID de classe pour des actions effectues par Photoshop. Ces ID sont utiliss pour configurer la notification laide de la classe Classe Notifier. Vous pouvez dterminer lID dvnement de toutes les actions enregistrables en utilisant lcouteur de scripts. Il vous suffit pour cela dinstaller le module externe Ecouteur de scripts comme indiqu la section Installation de lcouteur de scripts , page 77. Excutez ensuite laction pour laquelle vous souhaitez rechercher lID dvnement. Lvnement est alors consign dans le fichier dhistorique de lcouteur de scripts (voir la section Module externe Ecouteur de scripts , page 77). Si lvnement sapplique plusieurs classes dobjets, lID de classe est galement consign dans le fichier dhistorique. Les exemples suivants montrent comment rechercher lID de lvnement Open Document (Ouvrir le document) et les ID dvnements et de classes de lvnement New (Nouveau), qui sapplique plusieurs classes. Recherche de lID de lvnement Open Document 1. Assurez-vous que le module externe Ecouteur de scripts est install. 2. Ouvrez Photoshop, puis ouvrez un document. 3. Recherchez le fichier dhistorique de lcouteur de scripts et ouvrez-le. Vous pouvez utiliser le fichier dhistorique VBScript ou JavaScript. Dans la version JavaScript du fichier, un code similaire lexemple ci-dessous apparat la fin du fichier (tous les lments situs sous la ligne compose de signes gal correspondent la dernire action effectue) :
// ======================================================= var id14 = charIDToTypeID( "Opn " ); var desc5 = new ActionDescriptor(); var id15 = charIDToTypeID( "null" ); desc5.putPath( id15, new File( "C:\\Program Files\\Adobe\\Adobe Photoshop CS4\\ Samples\\Fish.psd" ) ); executeAction( id14, desc5, DialogModes.NO );

CHAPITRE 4 : Gestionnaire de scripts

Utilisation de lcouteur de scripts pour rechercher des ID dvnements et de classes

86

4. La mthode executeAction excute laction partir dun script et requiert lID dvnement pour identifier laction effectuer. Le premier argument, dans ce cas id14, fournit lID dvnement la mthode. Vous pouvez constater que la variable id14 est dfinie quelques lignes plus haut, et que lID dvnement de laction Open Document est "Opn ". 5. Vous pouvez dsormais utiliser cet ID dvnement pour configurer une notification dvnement pour lvnement 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)

Recherche de lID dvnement et de lID de classe de lvnement New 1. Assurez-vous que le module externe Ecouteur de scripts est install. 2. Ouvrez Photoshop, puis crez un document laide de la commande Fichier > Nouveau. 3. Crez ensuite une nouvelle couche en cliquant sur licne Crer une couche dans le panneau Couches. 4. Recherchez le fichier dhistorique de lcouteur de scripts et ouvrez-le. Vous pouvez utiliser le fichier dhistorique VBScript ou JavaScript. Comme nous avons enregistr deux actions, nous recherchons les deux dernires sections du fichier, qui sont dlimites par les lignes de signes gal. Dans le fichier historique JavaScript, un code similaire lexemple ci-dessous apparat 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 );

CHAPITRE 4 : Gestionnaire de scripts

Utilisation de lcouteur de scripts pour rechercher des ID dvnements et de classes

87

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

5. La premire partie reprsente le code permettant dexcuter lvnement New Document (Nouveau document). La deuxime partie reprsente le code pour lvnement New Channel (Nouvelle couche). 6. La mthode executeAction pour ces deux actions utilise un argument dont la valeur est dfinie (voir id17 et id34). Il sagit de lID dvnement de laction New. Cette action a comme Mk galement besoin de connatre la classe utiliser, lID de classe de lvnement. 7. La mthode putObject identifie la classe laquelle sapplique laction. Le deuxime argument de la mthode putObject nous fournit lID de classe dont nous avons besoin. Dans la premire action, id33 est dfini comme Dcmn , tandis que dans la seconde action, id45 est dfini comme Chnl . soit respectivement nos ID de classes pour Document et pour Channel. 8. Vous pouvez dsormais utiliser ces ID dvnements et de classes afin de configurer une notification dvnement pour les vnements 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
A
actions vs. scripts, 9 affichage des botes de dialogue, 34 AppleScript conventions, 6 cration, 19 excution, 19 excution de scripts JavaScript partir de, 11 prcisions sur la valeur dunit, 59 Applescript affichage du dictionnaire, 22 Application, objet affichage des botes de dialogue, 34 ciblage, 24 dfini, 12 lien avec linterface utilisateur, 15 rfrencement, 24 utilisation, 35 Art Layer, objet ajout dans un script JavaScript, 26 ajout dans un script VBScript, 26 application de styles, 42 cration, 38 cration dun calque de texte, 43 dfini, 13 filtres, 56 lien avec linterface utilisateur, 15 rfrencement, 40 utilisation, 38 automatisation dun flux de production, JavaScript, 63 modification du type, 49 types de, 13 utilisation, 49 classes, recherche, 22 collections, indexation VBScript, 12 Color Sampler, objet dfini, 14 lien avec linterface utilisateur, 16 Color, objet dans le DOM, 16 Color, objets application au texte, 67 comparaison, 56 dfinis, 54 dfinition des valeurs hexadcimales, 55 obtention et conversion, 55 solid color, classes, 54 utilisation, 54 Web scuriss, 56 commandes affichage, 22 conventions, 7 constantes dfinies, 17 recherche, 17, 22 contour slections, 46 texte, 68 conventions, 6 conventions typographiques, 6 copies avec fusion, 58 copy et paste, commandes, 57 copy merged, commande, 58 couches de composante, 13 couches de ton direct, 13 couches de zone masque, 13 couches de zone slectionne, 13 couleur Web scurise, 56 Count Item, objet dfini, 14 lien avec linterface utilisateur, 16

B
bibliothque de types, VBScript, 23 botes de dialogue, contrle, 34

C
calques de texte, 43 Channel, objet activation, 29 dfini, 13 dfinition de la couche active, 29 lien avec linterface utilisateur, 15

D
Document Info, objet dfini, 14 lien avec linterface utilisateur, 16

88

Index

89

utilisation, 49 Document, objet activation, 27 ajout, 25 dfini, 12 enregistrement, 32 informations sur le document, 49 lien avec linterface utilisateur, 15 manipulation, 36 ouverture, 30 utilisation, 36 valeurs dunit, 61

dfini, 77 excution de code JavaScript partir de scripts AppleScript, 84 excution de code JavaScript partir de scripts VBScript, 83 objets de scripts, 78 utilisation partir de scripts JavaScript, 79 utilisation partir de scripts VBScript, 81

H
hirarchie, 11 hirarchie dimbrication, 11 History State, objet dfini, 14 lien avec linterface utilisateur, 16 purge, 50 rtablissement, 50 utilisation, 50

E
couteur de scripts dsinstallation, 78 enregistrement de scripts, 78 fichiers journaux, 77 installation, 77 recherche dID dvnements, 85 recherche dID de classe, 85 Editeur de scripts utilisation, 19 enregistrement des documents, 32 EPS open options, objet valeurs dunit, 61 tats dhistorique dfinis, 50 extensions de fichier fichiers de script, 10

I
ID dvnements, recherche avec lcouteur de scripts, 85 ID de classe, recherche, 85 images, modification de la composition, 13

J
JavaScript conventions, 6 cration, 20 excution, 10, 20 excution partir de scripts Applescript, 11 excution partir de scripts VBScript, 11 exemple dautomatisation dun flux de production, 63 prise en charge, 10 utilisation du Gestionnaire de scripts, 79

F
fichier dfinition du format, 30 fichiers dduction du format, 30 enregistrement, 32 ouverture, 30 ouverture en utilisant des paramtres spcifiques, 30 filtres application du filtre Flou directionnel, 75 application du filtre Onde, 7174 rendre excutable sous forme de script, 78 supplmentaires, 57 utilisation, 56 flou directionnel, dfinition, 75

L
langages de script exemple de scripts, 18 pris en charge, 9 Layer Comp, objet dfini, 13 lien avec linterface utilisateur, 15 Layer Set, objet cration, 39 dfini, 13 lien avec linterface utilisateur, 15 utilisation, 38, 41

G
Gestionnaire de scripts

Index

90

layer, classes, 13 Layer, objets activation, 28 ajout, 26 application de styles, 42 cration, 38 dfinis, 13 dfinition du type, 43 liaison, 41 rfrencement, 40 test pour calques de texte, 43 utilisation, 38 lens flare open options, objet valeurs dunit, 61 Les, 57 logique conditionnelle, 9

cration dans un script, 2426 hirarchie, 11 modle dobjet dAdobe Photoshop, 12 objets actifs, dfinition, 26 offset filter, objet valeurs dunit, 61 Onde, application du filtre, 7174 Open options, classes, 17 oprations, valeurs dunit, 60

P
parent, objets dfinis, 27 paste, commandes, 57 Path Item, objet cration dune ligne droite, 52 dfini, 14 lien avec linterface utilisateur, 15 PathPoint, objet dfini, 14 PDF open options, objet valeurs dunit, 61 prfrences dfinition, 34 utilisation, 64 Preferences, objet dfini, 14 lien avec linterface utilisateur, 16 Presse-papiers, commandes, 57 proprits conventions, 7 recherche, 22

M
Measurement Scale, objet dfini, 15 lien avec linterface utilisateur, 16 mesure, units utilisation, 59 mtadonnes, dfinies, 16 mthodes affichage, 22 conventions, 7 modle dobjet concepts, 11 utilisation, 35 modle dobjet dAdobe Photoshop, 12, 35 modle dobjet de document (DOM), Voir modle dobjet modle dobjet de Photoshop, 12

R
rgle, units dfinies, 59 dfinition, 62 utilisation de la valeur, 61 valeurs, 59

N
notification dvnement, paramtrage, 51 Notifier, objet dfini, 14 lien avec linterface utilisateur, 16 recherche dID dvnements, 85 recherche dID de classe, 85 utilisation, 51

S
Save options, classes, 17 script Hello World, 1821 scripts avancs, 64 cration, 64 cration dobjets, 2426 dfinis, 8 dmarrage, 10 emplacements du fichier, 10 enregistrement, 78

O
objet activation, 26 objets Voir aussi le nom de chaque objet affichage, 22

Index

91

excution, 10 extensions de fichier valides, 10 fonctionnalit, 9 fonctions, 9 utilisation, 77 vs. actions, 9 scripts de dmarrage, 10 Scripts, panneau, 77 Selection, objet chargement, 48 contour, 46 contour progressif, 47 cration, 45 dfini, 13 dfinition de la zone, 71 inversion, 47 lien avec linterface utilisateur, 15 redimensionnement, 47 remplissage, 47 restauration, 48 stockage, 48 utilisation, 45 Solid Color, classes, 54 styles, application aux calques, 42 SubPathItem, objet dfini, 14

dans les oprations, 60 dfinition, 62 prcisions pour AppleScript, 59 types spciaux, 59 utilisation, 59 utilisation de la valeur, 61 valeurs, 59 units de mesure prfrences document, 64

V
valeurs chromatiques hexadcimales, dfinition, 55 valeurs numres recherche, 22 VBScript bibliothque de types, 23 conventions, 6 cration, 20 excution, 20 excution de scripts JavaScript partir de, 11 utilisation du Gestionnaire de scripts, 81

T
Text Item, objet cration, 43 dfini, 13 mise en forme de texte, 44 utilisation, 43 valeurs dunit, 61 texte application de couleur, 67 calques, 43 contour, 68 mise en forme, 44 texte, units dfinies, 59 dfinition, 62 tracs, cration, 52 types de valeurs constantes, 17

U
units comme paramtres, 62 comme proprits, 61 dans les arguments, 62

Vous aimerez peut-être aussi