Aller au contenu

Script PS pour exporter chaque calque en JPG


FT77

Recommended Posts

Bonjour à tous.

Je me permets de solliciter les pros du script 😏.

Ma fille réalise des planches de BD sous PS (CS6)...Son fichier comporte pas mal de calques.

Au final, elle les regroupe en un seul fichier comportant x calques, chacun contenant une case. Et elle a besoin ensuite d'exporter chaque calque/case en JPEG.

Vu la quantité (30 à 50 cases par BD!), elle souhaite 'automatiser' la procédure. Et se tourne vers son adorable papa, pleine de confiance 😻

Le problème d'un script, c'est que cela reproduit une séquence de touches (si j'ai bien compris...), mais du coup par exemple cela ne permet pas de remplir le nom de chaque fichier en fonction du nom du calque etc... Ou du moins je n'ai pas compris comment faire 🤪

Je me suis essayé aux scripts (Actions est le bon terme je crois), mais suis plus habitué aux langages de programmation... Du coup, l'aspect "enregistrer les touches" me semble compliqué (pas de moyen de se relire, de modifier ou corriger...). Bref, je crois qu'on peut aussi réaliser des scripts en Javascript, voire appeler l'objet PS depuis un script VBA :). Mais ce ne sont plus des Actions/script...

Du coup, pouvez-vous:

- me conseiller sur la démarche: script/action si cela est possible, ou faut-il passer par du jsx ou autre?

- de manière générale, pouvez-vous me conseiller des tutos qui serait adaptés à ce problème particulier (balayer chaque calque d'un fichier, le sélectionner, exporter sous jpeg, remplir le nom du fichier et passer au suivant etc). Par exemple en script je ne sais pas balayer tous les calques, dont le nombre varie d'un fichier à l'autre 🤔

- comme je suis plus à l'aise en programmation classique, si vous avez des choses à me conseiller sur le javascript (voir le VB, j'ai vu qu'on pouvait appeler Photoshop depuis un script Excel! J'ai fait cela il y a quelques années juste pour mettre une signature dans mes images, en adaptant à la taille et l'orientation de l'image, mais ça n'a plus l'air de marcher entre un Excel 2010 et CS6 😥, j'avais une encore plus vielle version d'Excel à l'époque...). Le VBA pourrait être une bonne approche, ça me permettrait facilement de récupérer la liste des exports JPEG dans Excel et générer ainsi la liste des images...). Mais je ne suis pas bloqué sur un langage une une méthode, si je demande de l'aide c'est que je suis prêt à suivre les conseils!

 

Merci par avance pour votre aide (et de manière générale pour les conseils glanés ça et là sur le forum, même pour une quiche en Photoshop comme moi 👍)

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que ce type de problème (traitement par lot, ou à l'intérieur d'un PSD) doit se poser souvent 😀.

En effet, si on est amené à génerer des PSD complexes, on aura des traitements (extraction de données etc) à faire dessus, ou renommer des couches, les arranger...

 

Bon, en cherchant aussi de mon côté (pour ne pas rester passif et attendre que ça tombe tout cuit 😜), j'ai trouvé dans les répertoires de CS6 un fichier sur vbscript (Photoshop-CS6-Scripting-Guide.pdf).

On peut donc créer des fichier .VBS, que l'on lance ensuite depuis l'explorateur (si on est sous Windows, je connais moins l'environnement Mac mais ça doit être similaire avec AppleScript).

J'ai commencé à partir de la doc, juste récupérer le nombre de couches d'un document ouvert, je joints le fichier .vbs

L'idée c'est  d'ouvrir l'objet Photoshop:

' ouverture de l'objet Photoshop
Set appRef = CreateObject("Photoshop.Application")

 puis d'accéder à chaque couche:

nbLayers = appRef.ActiveDocument.Layers.Count
for numLayer = 1 To nbLayers 
	Set layer1 = appRef.ActiveDocument.Layers(numLayer)
	message = "couche " & numLayer & "/" & nbLayers & ": " & layer1.name
	MsgBox (message)
Next

 

 

J'ai aussi tenté de faire en VBA sous Excel 2010.

Il faut penser à créer un classeur avec macro (.xlsm),  d'ouvrir les macros et tenter d'accéder à l'objet Photoshop par un Photoshop.Application.

J'ai récupéré cela sur le net:

    'Create a new instance of Photoshop application and make it visible.
    On Error Resume Next
    Set PsApp = New Photoshop.Application
    If PsApp Is Nothing Then
        MsgBox "Sorry, it was impossible to start Photoshop!", vbCritical, "Photoshop Application Error"
        Exit Sub
    End If
    PsApp.Visible = True

Premier écueil, le Photoshop.Application retourne une erreur si on n'a pas activé la référence à l'objet Photoshop par Outils/References puis sélectionner  Adobe Photoshop CS6 Object library et Adobe Photoshop CS6 Type library...

Mais même avec cela, le PsApp retourné est toujours vide (Nothing).

 

Bon, je vais regarder plus tard, pour le moment la piste vbscript est plus prometteuse... 👍

Je vous tiens au courant des avancées, mais attends des pistes/conseils!

A+

 

TestPS2.vbs

  • Merci ! 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, suite de mes recherches...

En VBScript je galère un peu pour la sélection des calques 🤕.

J'arrive à obtenir leur nombre, donc l'objet layers est correct, mais après...

Bref, je change mon fusil d'épaule et passe au scripts javascript. La doc est encore dans le répertoire d'installation CS6, Photoshop-CS6-JavaScript-Ref.pdf.

Il faut lancer l'éditeur (qui s'installe avec CS6, c'est ExtendScript Toolkit.exe qui est dans C:\Program Files (x86)\Adobe\Adobe Utilities - CS6\ExtendScript Toolkit CS6

J'ai donc regardé les exemples de la doc, et ai réussi à faire le programme ci-joint (Conversion_JPG_4.jsx).

Et ça fonctionne bien 😀. Je créée donc mes fichiers Chapitre1_05.jpg, avec une boîte de dialogue pour le n° de chapitre, et ensuite le n° du calque.

Testé sur le fichier avec 70 (!) calques, ça fonctionne.

Je cherche encore à afficher la progression parceque...c'est long 😬, mais pour le moment si j'arrive à afficher une ProgressBar, elle est très mal rafraîchie (et donc pas utile!)

Voilà, j'espère que cela pourra servir à d'autres...

Conversion_JPG_4.jsx

  • Merci ! 1

Partager ce message


Lien à poster
Partager sur d’autres sites

  • 2 weeks later...

Salut 🙂

 

tu aurai moyen de m'envoyé un exemple de fichier par mail que je teste de mon coté 🙂 ? 

[email protected]

c'est le genre de challenge que j'aime bien ^^ et si sinon je demanderai a des gens qui ont déjà créer des plugins que je connais 🙂 

 

bien à toi

  • J'aime 1
Quand tout semble aller contre toi, souviens-toi que l’avion décolle contre le vent, pas avec. (Henry Ford)*

Impression à gagner le 11 Decembre avec le code J11Print ( plus d'info le 11 Décembre :D )

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour.

Je t'ai renvoyé le script par mail (mais normalement on doit pouvoir le télécharger depuis mon post précédent?).

Bons essais, et preneur si tu as des idées pour améliorer la chose!

En tous cas moi ça m'a été bien utilse, et je ne savais pas qu'on pouvait faire ce genre de choses avec PS 🙂

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Vous avez collé du contenu avec mise en forme.   Supprimer la mise en forme

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Créer...