Ecrire dans un calque Photoshop. Imaginons qu'on ait besoin de créer des images contenant du texte et que ces images doivent être créées en 3 langues. Une solution possible concistera à créer un claque Photoshop par langue. On considérera qu'on nomme les calques toujours de la même façon. Ainsi, il sera possible d'automatiser la saisie du texte dans les calques. Dans l'exemple ci-dessous, on proposera de cibler un des 3 calques de l'image "welcome.psd". Ces calques sont "english", "french" et "german".
Exemple 21 : récupérez l'AppleScript ici et le fichier d'exemple ici.
Le Script : setma_question1to display dialog "quel est le calque choisi ?" default answer "english french german" setcalque_cibleto text returned ofma_question1
setma_question2to display dialog "quel est le texte choisi ?" default answer "Welcome Bienvenue Willkommen" settexte_cibleto text returned ofma_question2
tell application "Adobe Photoshop CS"
activate tell(current document) tell art layer calque_cible set contents of text object totexte_cible end tell end tell end tell
Explications : Quand on regarde le dictionnaire de Photoshop, on voit qu'il existe une hiérarchie d'élements. Après l'application, le premier élément est le document, puis le art layer (le calque), le text-object et enfin le contenu du text-object proprement dit. Quand on a à faire avec ce genre de hiérarchie, le plus simple est d'utiliser des "tell" imbriqués plutôt qu'une longue liste de "of". En utilisant cette seconde écriture on obtiendrait : "set contents of text objectofart layer calque_cibleofcurrent documenttotexte_cible".
Astuce : si le calque visé se trouve dans un dossier de calque (layer set), il suffira d'utiliser un "tell" supplémentaire entre le niveau "document" et le niveau "art layer" puisque le "layer set" est hérarchiquement compris entre ces deux niveaux.