Retour à la page des tutos

Initiation aux scripts et aux traitements par lots

Le but de ce tutorial est de vous initier au maniement des scripts pour automatiser des traitements répétitifs qu’on doit appliquer à toutes les images d’un dossier. Pour vous faire la main, il vous faut un dossier cobaye « dossier_source » dans lequel vous allez placer 3 ou 4 fichiers (ou plus) composés chacun de plusieurs calques.

Tout cela est déjà abondamment traité sur le web, par exemple chez absolut-photo, diapovision, photoshop-school, et bien d'autres, mais nous allons refaire ça à notre manière.

Dans un premier temps, nous allons faire un script pour transformer tous ces fichiers en images JPEG destinées à être projetées sur vidéoprojecteur, donc devant s’inscrire en principe dans un rectangle 1024x768. Nous allons y arriver en plusieurs étapes. Suivez le guide !

La palette des scripts et notre premier script

 Un script est une suite d’actions qu’on a enregistrées sur une image donnée et que l’on peut répéter ensuite à l’identique pour une autre image. On accède aux scripts par la palette des scripts. Dans l’exemple ci-contre, on voit trois lignes avec chacune un icône de dossier qui correspondent en fait à de véritables dossiers où on peut ranger autant de scripts que l’on veut ; la ligne « Scripts par défauts » vient avec l’installation de Photoshop, mais les deux autres lignes ont été créées par l’utilisateur. Toute la palette se commande avec les boutons du bas de la palette ; on a aussi un menu local (le bouton tout en haut à droite), mais on peut se passer de celui-ci. Pour se rappeler la fonction des différents boutons, immobilisez la souris dessus pour voir apparaître une brève explication.

 Avant de créer votre premier script, il vous faut créer un dossier personnel, afin de ne pas perdre vos essais parmi la foule des autres scripts déjà installés. Cela se fait par le bouton cerclé en rouge ci-contre. On vous propose de l’appeler « Ensemble 1 » mais vous pouvez prendre le nom qui vous plaira ; vous voyez alors une nouvelle ligne apparaître sous ce nom dans la palette des scripts. Si vous avez des regrets tardifs, vous pouvez encore changer à tout moment après un double clic sur ce nom.

Avant de continuer, ouvrez une image avec plusieurs calques — si elle n’en a qu’un, ajoutez lui un nouveau calque vide.

Notre premier script va être excessivement modeste et ne contenir qu’une réduction de taille. Néammoins, nous allons nous heurter d’emblée à l’une des faiblesses de Photoshop, l’absence d’instructions conditionnelles dans les scripts. Comment faire pour que nos images s’inscrivent toutes dans le rectangle 1024x768 ? Si on pouvait distinguer entre les images horizontales et les verticales, on réduirait la largeur des premières à 1024 px et la hauteur des secondes à 768 px, mais on ne peut pas faire ce tri automatiquement dans un script. Alors ? [NOTA]

Nous allons maintenant faire notre premier script.

  1. Dans la palette des scripts, cliquez sur le bouton « nouveau script » (juste avant la poubelle). Le programme vous demande quel nom vous allez donner à ce script et dans quel ensemble vous allez le mettre, puis passe en mode d’enregistrement (le deuxième bouton de la palette passe en rouge). A partir de ce moment, tout ce que vous allez faire sera enregistré dans le script.
  2. Nous nous conterons de deux instructions : d’abord un aplatissement de l’image par la méthode qui vous plaira (menu Calque > Aplatir l’image, ou bien menu local de la palette des calques, ou bien encore raccourci clavier CTRL+ALT+E)
  3. puis un changement de taille de l’image avec  rééchantillonage et passage de la hauteur à 768 px. Ces deux opérations se sont réflétées dans la palette des scripts par l’apparition de deux lignes rappelant les opérations effectuées, comme on peut le voir ci-contre
  4. Arrêtez l’enregistrement du script en cliquant sur le  bouton le plus à gauche (en bleu ci-contre). Le deuxième bouton passe alors du rouge au gris.


Vous pouvez maintenant en vérifier le bon fonctionnement en ouvrant  une autre image, puis en sélectionnant ce script (cliquez sur sa ligne dans la palette des scripts), et enfin en lançant son exécution avec le bouton en triangle.

Incidemment, si vous décochez une ligne (clic sur la première colonne de la palette), l’instruction correspondante n’est pas exécutée.

Vous pouvez aussi ouvrir la ligne « taille de l’image » dans la palette : vous voyez les paramètres qui dont utilisés dans l’opération (mais vous ne pouvez pas les modifier)

Application automatique à tout un dossier

Rappelez-vous que vous devez avoir préparé un dossier cobaye. Son traitement automatique se passe avec le menu Fichier > Automatisation > Traitements par lots. Il s’ouvre une boîte de dialogue imposante, qui est organisée en 4 cadres, soulignés d’un contour de couleur dans l’image ci-contre.

  1. Cadre Exécuter : on doit y faire apparaître le script à exécuter
  2. Cadre Source : la première liste déroulante doit bien être sur «Dossier». Cliquez sur le bouton «Sélectionner» pour définir le dossier que vous allez traiter. Quant aux autres options, tout doit être décoché dans ce premier exercice, sauf la dernière sur les profils colorimétriques.
  3. Cadre Destination : idem, la première liste déroulante doit bien être sur «Dossier» et cliquez sur le bouton «Sélectionner» pour définir le dossier que vous allez traiter ; au besoin, vous pouvez créer un nouveau dossier. Ne prenez pas le même dossier, toutes vos images seraient écrasées ; comme nous alons devoir faire d’autres essais, autant prendre nos précautions.

    Les 6 listes déroulantes tout en bas du cadre permettent éventuellement de renommer les fichiers traités au moment de leur sauvegardes.
  4. Cadre Erreurs : la conduite à tenir en cas de problème. Vous pouvez choisir d’arrêter immédiatement, mais je conseille de consigner les erreurs dans un fichier ; dans ce cas, il faut cliquer sur «Enregistrer» pour dire où vous mettez ce fichier — le bureau ou le dossier de destination feront très bien l’affaire.

Allez-y, ça doit marcher. Bien que notre script ne contienne aucune instruction d’ouverture ou d’enregistrement, les images sont bel et bien ouvertes, réduites et réenregistrées dans le dossier de destination, sous les mêmes noms que les fichiers d’origine et sous le même format. Evidemment, si nous ne voulons que des fichiers jpeg en sortie, il va falloir compliquer un peu les choses.

Comment n’obtenir que des JPEG en sortie ?

Il fait évidemment ajouter une instruction d’enregistrement dans le script. Pour cela,

  1. ouvrir une image cobaye
  2. dans la palette des scripts, ouvrir le script et sélectionner l’intruction après laquelle on va rajouter quelque chose. Dans notre cas, il s’agit de la dernière instruction, « taille de l’image ».
  3. cliquer sur le bouton d’enregistrement. Celui-ci passe en rouge (cf figure)
  4. sur l’image cobaye, aller au menu Enregistrer sous et demander un format JPEG. Choisissez une destination sur le bureau ; l’endroit précis n’a aucune importance mais il faudra ensuite faire le ménage et supprimer l’image ainsi obtenue. Pour une projection sur vidéoprojecteur, une qualité moyenne sera suffisante.
  5. Arrêtez l’enregistrement du script (premier bouton sur la palette)

Lors de l’exécution par lot sur tout un dossier, il va falloir  empêcher l’instruction de sauvegarde de reprendre le nom de fichier qu’on a utilisé lors de l’enregistrement du script. On obtient cela en cochant l’option « Priorité sur les instructions Enregistrer sous » cochée ci-contre. Essayez…

Premiers ennuis possibles

A l'usage, vous verrez que la mise au point d'un script demande beaucoup de patience. Parmi les premières difficultés que vous pourriez rencontrer :
— si vous avez oublié de cocher l'option Supprimer les avertissements sur les profils colorimétriques, selon le réglage de vos préférences couleur, le script risque de s'arrêter chaque fois qu'il ouvrira une image avec un profil différent de votre profil par défaut. Il faut cocher cette option.
— si votre script ouvre une image jpeg, qu'il y ajoute un ou plusieurs calques et qu'il n'y ait pas d'instruction spécifique d'enregistrement, le traitement par lots ne saura pas quoi faire au moment d'enregistrer : il est prévu pour rester dans le format d'origine (jpeg) mais il ne prendra pas l'initiative d'aplatir l'image au préalable et il s'arrêtera sur la boîte de dialogue d'enregistrement. Pour éviter cela, il faudra ajouter l'instruction d'aplatissement à la fin de votre script.

Introduction de points d’arrêt dans le script

Une façon de résoudre la difficulté des  verticales/horizontales dans notre script serait de placer un point d’arrêt sur l’instruction «Taille de l’image», en cochant la deuxième case dans la ligne correspondante du script (en vert ci-contre). Lors de l’exécution, le programme s’arrête sur la boîte de dialogue de l’instruction. Le script propose alors le choix de dimensions qu’on a retenu quand on a fait le script, mais si l’une des deux déborde du cadre 1024 x 768, on peut très bien la corriger à la main. Le script repart quand on clique OK dans le dialogue. On résoud donc ainsi la difficulté, mais en renonçant à un fonctionnement entièrement automatique ; à vous de choisir…

On peut même intercaler un message d’avertissement. Pour cela (sans qu’il soit nécessaire se remettre en enregistrement) on va chercher dans le menu local de la palette des scripts la ligne Insérer un point d’arrêt… et peut écrire un message explicatif sur ce qui va suivre ; il faut faudra cocher l’option « Autorisation de continuer » (sinon le script s’arrêterait lors de l’exécution).

En fait, dans ce problème précis de rééchantillonage d’une image, on n’a pas besoin de se casser la tête. Dans leur infinie sagesse, les concepteurs de Photoshop ont remarqué qu’il s’agissait d’un problème assez courant et ils ont créé une fonction taillée sur mesure, au menu Fichier > Automatisation > Adapter l’image. Là, on vous demande dans quel rectangle (en pixels) il faut faire rentrer l’image : dans notre cas, indiquez 1064 en largeur et 768 en hauteur.
Malheureusement (c'était trop beau), cette fonction ne tient pas compte du paramétrage indiqué dans le script, elle en reste au paramétrage demandé lors de sa dernière utilisation. Le remède est simple : avant de lancer le script, appelez cette fonction pour régler son paramétrage.


Importation et exportation de scripts

On trouve de nombreux scripts prêts à l’emploi sur Internet sous le forme de fichiers « atn ,» (c.à.d. des fichiers avec l’extension atn). Pour les mettre en oeuvre, il faut passer par la rubrique Charger des scripts du menu local de la palette de scripts, qui ouvre une boîte de dialogue d’ouverture de fichier et où vous devez indiquer où se trouve le fichier « atn » à charger.

Inversement, il se peut que vous vouliez transmettre vos scripts à quelqu’un d’autre, ou simplement les archiver pour les mettre à l’abri ou pour les récupérer quand vous passerez à une autre version de Photoshop. Pour cela, il faudra sélectionner un ensemble de vos scripts (on ne peut agir que un ensemble de scripts) et passer par la rubrique Enregistrer les scripts du menu local, qui transformera cet ensemble en ficher « atn ».

Une alternative pour enregistrer des fichiers dans un script

 Dans le dialogue d’exécution par lots, on a 3 possibilités pour la liste déroulante «Sélectionner» du cadre «Destination». Si on choisit «Enregistrer et fermer», le script va enregistrer les fichiers dans le répertoire même qui aura été utilisé lors de l’enregistrement du script. Si le script ne trouve pas ce répertoire (parce qu’il aura été détruit entre temps, ou bien déplacé dans l’arborescence du disque dur), il n’y aura pas de sauvegarde. Ce mode de fonctionnement est donc moins souple que le mode «Dossier», avec lequel on peut envoyer les fichiers n’importe où, mais il permet d’avoir plusieurs instructions d’enregistrement dans des répertoires différents dans le même script — par exemple pour créer des galeries pour le web, où on a besoin à la fois d’images et de vignettes. Dans la perspective de galeries pour le web, il vaudrait mieux remplacer l’enregistrement classique par le menu Enregistrer pour le web, afin d’obtenir des fichiers plus petits. Ce menu permettra lui aussi de multiplier les enregistrements vers des répertoires différents dans le même script, mais

  1. il faudra cette fois choisir l’option «Sans» dans la liste déroulante «Destination»
  2. il faudra ajouter une instruction Fermer l’image dans le script (sinon, toutes les images traitées resteraient ouvertes)
  3. et, à nouveau, il faudra que les répertoires utilisés lors de la création du script soient toujours disponibles lors de son exécution, avec le même nom et la même place dans l’arborescence.

Retour accueil «numérique»