Sujet: Besoin d'aide pour créer une action automatisée sur Photoshop

Modérateur: Modérateurs

Poster une réponse

Besoin d'aide pour créer une action automatisée sur Photoshop

par JC83 » Jeudi 08 Décembre 2022 15:08

Bonjour,
J'aurai besoin de votre aide pour créer une action automatisée sur photoshop. Il s'agit de créer un recadrage carré d'une image quelconque s'adaptant automatiquement au plus grand de ses côtés.
Je vous ai mis 2 images pour mieux visualiser ce que je veux obtenir. Peut-être existe-t-il déjà des scripts correspondants ?
Merci d'avance pour votre aide.
carré-1.jpg
carré-1.jpg (335.31 Kio) Vu 1359 fois

carré-2.jpg
carré-2.jpg (466.84 Kio) Vu 1359 fois

Photos: 2391
JC83

Pixelistes
Pixelistes

Messages: 4120

Inscription: 14 Juil 2007

Localisation: Var

Boitier 1: - Nikon Df

Boitier 2: - Nikon D90

Boitier 3: - Nikon F65

Objectif 1: - Nikkor 18-135mm f/3,5-5,6 AF-S IF-ED DX

Objectif 2: - Sigma 70-200mm f/2.8 APO EX DG HSM

Objectif 3: - Sigma 10-20mm f/4-5.6 EX DC HSM

Objectif 4: - Nikkor 24mm f/2.8D AF

Objectif 5: - Nikkor 35mm f/1.8G AF-S DX

Objectif 6: - Nikkor 50mm f/1.8G AF-S

Objectif 7: - Sigma 24-105mm f/4 DG OS HSM ART

Objectif 8: - Nikkor 70-200mm f/2.8G ED-IF AF-S VR

Objectif 9: - Sigma 12-24mm f/4.5-5.6 EX DG

Objectif 10: - Nikkor 85mm f/1.8 AF

Flash 1: - Nikon SB-600

Publicité

Re: Besoin d'aide pour créer une action automatisée sur Photoshop

par foxe » Jeudi 08 Décembre 2022 20:49

bonjour jc,

et tu vas mettre quoi dans les pointillés ?
foxe

Photos: 2734
foxe

Pixelistes
Pixelistes

Messages: 3378

Inscription: 12 Nov 2016

Boitier 1: - Nikon D750

Objectif 1: - Nikkor 300mm f/2.8G ED-IF AF-S VR

Objectif 2: - Nikkor 800mm f/5.6 ED-IF Ai-S

Objectif 3: - Tamron 90mm f/2.8 Macro VC USD

par JC83 » Jeudi 08 Décembre 2022 21:22

foxe a écrit:bonjour jc,

et tu vas mettre quoi dans les pointillés ?
foxe

Bonjour foxe
Rien du tout. C’est juste pour publier sur Instagram.

Photos: 2391
JC83

Pixelistes
Pixelistes

Messages: 4120

Inscription: 14 Juil 2007

Localisation: Var

Boitier 1: - Nikon Df

Boitier 2: - Nikon D90

Boitier 3: - Nikon F65

Objectif 1: - Nikkor 18-135mm f/3,5-5,6 AF-S IF-ED DX

Objectif 2: - Sigma 70-200mm f/2.8 APO EX DG HSM

Objectif 3: - Sigma 10-20mm f/4-5.6 EX DC HSM

Objectif 4: - Nikkor 24mm f/2.8D AF

Objectif 5: - Nikkor 35mm f/1.8G AF-S DX

Objectif 6: - Nikkor 50mm f/1.8G AF-S

Objectif 7: - Sigma 24-105mm f/4 DG OS HSM ART

Objectif 8: - Nikkor 70-200mm f/2.8G ED-IF AF-S VR

Objectif 9: - Sigma 12-24mm f/4.5-5.6 EX DG

Objectif 10: - Nikkor 85mm f/1.8 AF

Flash 1: - Nikon SB-600

Re: Besoin d'aide pour créer une action automatisée sur Photoshop

par foxe » Jeudi 08 Décembre 2022 22:04

L'exemple que tu présentes et une action de recadrage en cours, photoshop attend que tu choisisses et valides, il s'agit donc du vision passagère de l'image. Toute la partie vide en pointillée doit être remplie de quelque chose avant d'exporter l'image au format .jpg. Le format carré aura donc une couleur au dessus et en dessous, ou bien à gauche et à droite ou tout d'un côté et rien de l'autre.
Même si tu remplis de noir ou de blanc sur ces surfaces cela ne sera peut être pas très beau sur l'image finale.


Ce serait mieux de prendre les photos directement au format carré comme les gsm peuvent le faire il me semble et certains autres appareils photos également mais pas tous

Photos: 2734
foxe

Pixelistes
Pixelistes

Messages: 3378

Inscription: 12 Nov 2016

Boitier 1: - Nikon D750

Objectif 1: - Nikkor 300mm f/2.8G ED-IF AF-S VR

Objectif 2: - Nikkor 800mm f/5.6 ED-IF Ai-S

Objectif 3: - Tamron 90mm f/2.8 Macro VC USD

par JC83 » Jeudi 08 Décembre 2022 22:11

foxe a écrit:L'exemple que tu présentes et une action de recadrage en cours, photoshop attend que tu choisisses et valides, il s'agit donc du vision passagère de l'image. Toute la partie vide en pointillée doit être remplie de quelque chose avant d'exporter l'image au format .jpg. Le format carré aura donc une couleur au dessus et en dessous, ou bien à gauche et à droite ou tout d'un côté et rien de l'autre.
Même si tu remplis de noir ou de blanc sur ces surfaces cela ne sera peut être pas très beau sur l'image finale.


Ce serait mieux de prendre les photos directement au format carré comme les gsm peuvent le faire il me semble et certains autres appareils photos également mais pas tous


Ce que je montre sur les images, je sais le faire. En revanche, je suis obligé de répéter la manoeuvre pour chaque photo et c’est très long. J’ai essayé de faire des scripts par enregistrement mais ça fonctionne de façon aléatoire. Ce que je voudrais c’est que le recadrage se fasse de façon automatique par rapport au plus grand côté de chaque image.

Photos: 2391
JC83

Pixelistes
Pixelistes

Messages: 4120

Inscription: 14 Juil 2007

Localisation: Var

Boitier 1: - Nikon Df

Boitier 2: - Nikon D90

Boitier 3: - Nikon F65

Objectif 1: - Nikkor 18-135mm f/3,5-5,6 AF-S IF-ED DX

Objectif 2: - Sigma 70-200mm f/2.8 APO EX DG HSM

Objectif 3: - Sigma 10-20mm f/4-5.6 EX DC HSM

Objectif 4: - Nikkor 24mm f/2.8D AF

Objectif 5: - Nikkor 35mm f/1.8G AF-S DX

Objectif 6: - Nikkor 50mm f/1.8G AF-S

Objectif 7: - Sigma 24-105mm f/4 DG OS HSM ART

Objectif 8: - Nikkor 70-200mm f/2.8G ED-IF AF-S VR

Objectif 9: - Sigma 12-24mm f/4.5-5.6 EX DG

Objectif 10: - Nikkor 85mm f/1.8 AF

Flash 1: - Nikon SB-600

Re: Besoin d'aide pour créer une action automatisée sur Photoshop

par foxe » Vendredi 09 Décembre 2022 13:10

Je ne vois pas comme cela un script unique tant pour les verticales qu'horizontales

Photoshop a besoin d'éléments précis nécessaires à chaque fois sinon il se plante en erreurs.

Si l'utilisateur prend la peine d'amener des photos initiales ou ses crops éventuels dans un format standard précis, disons le 3:2 par exemple, du 6000x4000 ou tout pareil du 1200x800, alors il n'est pas difficile de demander au programme des automatismes pour un rendu carré mais pour ma part en différenciant horizontale et verticale, deux actions différentes selon la positon initiale de l'image, car tout en une action je vois pas comment faire.

En gros alors, prendre l'image et la traiter sans toucher au format de base, en fin de travail, appliquer l'action pour un rendu carré, pour de l'horizontal ce serait la photo avec une tranche de couleur au dessus et une tranche en dessous, couleur de tranche au choix, probable noir ou blanc comme sur ton premier exemple avec les zones pointillées peintes en noir ou blanc.

Avec tout un lot d'images 3:2, horizontales, mises dans un même dossier, profiter alors du traitement par lot qui effectue l'action sur toutes les images en une fois en plaçant des images carrés dans un autre dossier au choix
Avec tout un lot d'images 2:3 verticales lancer le script pour verticales.

pour convenir à des dimensions pour instagram
l'action de base pourrait être alors du genre :
-redimensionnement de l'image du grand côté à 1080pixels, conservation du ratio 3:2 (l'idéal étant une image de base plus grande sur son grand côté, car si on présente une petite de 600x400 par exemple alors il y aurait dégradation lors de l'agrandissement en 1080)
-agrandir la taille de la zone de travail de 50% sur sa hauteur, choix de la couleur de la zone agrandie (pour devenir une image carrée de 1080x1080pixels)
-enregistrement (pour que l'action retrouve le dossier choisi pour la sauvegarde de l 'image carrée)

Si tu veux je te transmettrai un exemple d'actions fonctionnant avec des formats de départ 3:2 et 2:3

Photos: 2734
foxe

Pixelistes
Pixelistes

Messages: 3378

Inscription: 12 Nov 2016

Boitier 1: - Nikon D750

Objectif 1: - Nikkor 300mm f/2.8G ED-IF AF-S VR

Objectif 2: - Nikkor 800mm f/5.6 ED-IF Ai-S

Objectif 3: - Tamron 90mm f/2.8 Macro VC USD

par JC83 » Vendredi 09 Décembre 2022 13:45

Merci Foxe, je veux bien.
Amicalement

Photos: 2391
JC83

Pixelistes
Pixelistes

Messages: 4120

Inscription: 14 Juil 2007

Localisation: Var

Boitier 1: - Nikon Df

Boitier 2: - Nikon D90

Boitier 3: - Nikon F65

Objectif 1: - Nikkor 18-135mm f/3,5-5,6 AF-S IF-ED DX

Objectif 2: - Sigma 70-200mm f/2.8 APO EX DG HSM

Objectif 3: - Sigma 10-20mm f/4-5.6 EX DC HSM

Objectif 4: - Nikkor 24mm f/2.8D AF

Objectif 5: - Nikkor 35mm f/1.8G AF-S DX

Objectif 6: - Nikkor 50mm f/1.8G AF-S

Objectif 7: - Sigma 24-105mm f/4 DG OS HSM ART

Objectif 8: - Nikkor 70-200mm f/2.8G ED-IF AF-S VR

Objectif 9: - Sigma 12-24mm f/4.5-5.6 EX DG

Objectif 10: - Nikkor 85mm f/1.8 AF

Flash 1: - Nikon SB-600

Re: Besoin d'aide pour créer une action automatisée sur Photoshop

par Dormeur74 » Lundi 26 Décembre 2022 18:34

Voici un script qui fait le taf :

Code: Tout sélectionner
#target photoshop                // MAC Finder ou WINDOWS Explorer : on autorise le double clic
app.bringToFront();             // On fait passer Photoshop au 1er plan
displayDialogs = DialogModes.NO;    // Désactivation des boîtes de dialogue

// On mémorise les unités trouvées dans les préférences de l'utilisateur
var regleUnite = app.preferences.rulerUnits;

// ...pour pouvoir travailler en pixels.
app.preferences.rulerUnits = Units.PIXELS;

// Déclaration des variables
var fileFound = false;
var gris = new SolidColor();
gris.rgb.hexValue = '7F7F7F';

var psd_Options  = new PhotoshopSaveOptions(); 
psd_Options.layers  = true;
psd_Options.embedColorProfile = true;
psd_Options.annotations = true;
psd_Options.alphaChannels = true;
psd_Options.spotColors = true;
      
// Traitement
main();

if (fileFound) {
   alert("Traitement terminé. Vos photos ont été sauvegardées dans le sous-dossier " + dossierOut);
}
else {
   alert("Pas de photo trouvée, fin de traitement !");
}

app.preferences.rulerUnits = regleUnite;

function main() {
   // On met toutes les photos trouvées dans un tableau
   var fichier = $.fileName;
   var x1 = fichier.length;
   var script = fichier.replace(/^.*[\\\/]/, '');
   var x2 = script.length + 1;
   // Dossier de sauvegarde à créer
   var dossier = Folder(fichier.substr(0,x1-x2));
   for (var compt=1;compt<1000;compt++) {
      dossierOut = Folder(dossier + "/sauvegarde"+compt);
      if (!dossierOut.exists) {
         dossierOut.create();
         compt = 1000;
      }
   }
   var dossierIn = Folder.selectDialog("Sélectionnez le dossier contenant les photos à traiter. La sauvegarde se fera dans le dossier " + dossierOut);

   var fileList = dossierIn.getFiles(/\.(jpg|)$/i);
   // S'il n'y a pas de photos dans ce dossier, on arrête tout
   if (fileList.length==0)
   {
      fileFound = false;
      return;
   }
   
   // Traitement
    for (var i= 0;i<fileList.length;i++) {
      var docRef = open(fileList[i]);
      var docName = docRef.name;
      
      // Calcul de la largeur des marges gauche, haut, bas
      var largeur = docRef.width;
      var hauteur = docRef.height;
      var dim = largeur;
      if (hauteur >= largeur)
      {
         dim = hauteur;
      }
      
      // on crée un nouveau document carré dans la plus grande dimension et on le peint en gris
      docRef.selection.selectAll();
      docRef.selection.copy();
      docRef.close(SaveOptions.DONOTSAVECHANGES);
      app.documents.add(dim, dim,300, docName,NewDocumentMode.RGB);
      var docRef = app.activeDocument;
      docRef.selection.selectAll();
      docRef.selection.fill(gris);
      docRef.paste();
      docRef.activeLayer.name = "Photo";
      
      // Sauvegarde au format PSD
      docRef.saveAs(File(dossierOut + '/' + docName + ".psd"), psd_Options, true );
      docRef.close(SaveOptions.DONOTSAVECHANGES);
   }
   fileFound = true;
}

Tu fais un copier-coller du script ci-dessus dans ton bloc-notes et tu sauvegardes le fichier sous le nom de ton choix avec l'extension .JSX
Ensuite, tu lances PS et tu vas dans Fichier...Script...Parcourir
Là tu navigues pour retrouver ton script.
Il va te demander de choisir le dossier contenant les photos à traiter, va les traiter une par une (que la photo soit horizontale, carrée ou verticale, en basse ou haute résolution) et les sauvegarder dans un sous-dossier ../sauvegarde1 que tu trouveras dans le dossier où tu auras placé ton script.

Si tu veux plus d'explication, j'ai créé un petit livret sur le sujet ici.

Photos: 147
Dormeur74

Membre VIP
Membre VIP

Messages: 1063

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Dernière édition par Dormeur74 le Lundi 26 Décembre 2022 18:43, édité 1 fois.

par JC83 » Lundi 26 Décembre 2022 18:37

Merci beaucoup Dormeur74 !
Et bonnes fêtes à toi !

Photos: 2391
JC83

Pixelistes
Pixelistes

Messages: 4120

Inscription: 14 Juil 2007

Localisation: Var

Boitier 1: - Nikon Df

Boitier 2: - Nikon D90

Boitier 3: - Nikon F65

Objectif 1: - Nikkor 18-135mm f/3,5-5,6 AF-S IF-ED DX

Objectif 2: - Sigma 70-200mm f/2.8 APO EX DG HSM

Objectif 3: - Sigma 10-20mm f/4-5.6 EX DC HSM

Objectif 4: - Nikkor 24mm f/2.8D AF

Objectif 5: - Nikkor 35mm f/1.8G AF-S DX

Objectif 6: - Nikkor 50mm f/1.8G AF-S

Objectif 7: - Sigma 24-105mm f/4 DG OS HSM ART

Objectif 8: - Nikkor 70-200mm f/2.8G ED-IF AF-S VR

Objectif 9: - Sigma 12-24mm f/4.5-5.6 EX DG

Objectif 10: - Nikkor 85mm f/1.8 AF

Flash 1: - Nikon SB-600

par Dormeur74 » Lundi 26 Décembre 2022 18:42

Tout ça retourné et bonnes fêtes à tous par la même occasion.

Photos: 147
Dormeur74

Membre VIP
Membre VIP

Messages: 1063

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

par JC83 » Lundi 26 Décembre 2022 19:01

J'ai essayé et ça bloque :
erreur.jpg
erreur.jpg (274.42 Kio) Vu 1163 fois

Photos: 2391
JC83

Pixelistes
Pixelistes

Messages: 4120

Inscription: 14 Juil 2007

Localisation: Var

Boitier 1: - Nikon Df

Boitier 2: - Nikon D90

Boitier 3: - Nikon F65

Objectif 1: - Nikkor 18-135mm f/3,5-5,6 AF-S IF-ED DX

Objectif 2: - Sigma 70-200mm f/2.8 APO EX DG HSM

Objectif 3: - Sigma 10-20mm f/4-5.6 EX DC HSM

Objectif 4: - Nikkor 24mm f/2.8D AF

Objectif 5: - Nikkor 35mm f/1.8G AF-S DX

Objectif 6: - Nikkor 50mm f/1.8G AF-S

Objectif 7: - Sigma 24-105mm f/4 DG OS HSM ART

Objectif 8: - Nikkor 70-200mm f/2.8G ED-IF AF-S VR

Objectif 9: - Sigma 12-24mm f/4.5-5.6 EX DG

Objectif 10: - Nikkor 85mm f/1.8 AF

Flash 1: - Nikon SB-600

par Dormeur74 » Lundi 26 Décembre 2022 21:01

Alors essaye de remplacer les lignes 62-63 par celles-ci :
var docRef = open(fileList[i]);
var docName = docRef.name.substring( 0, docRef.name.indexOf('.') );

Je reprendrai demain (c'est l'âge :oops: ).

Photos: 147
Dormeur74

Membre VIP
Membre VIP

Messages: 1063

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Re: Besoin d'aide pour créer une action automatisée sur Photoshop

par Dormeur74 » Mardi 27 Décembre 2022 16:23

Pas de retour ?

Photos: 147
Dormeur74

Membre VIP
Membre VIP

Messages: 1063

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

par foxe » Mardi 27 Décembre 2022 23:11

Dormeur74 a écrit:Pas de retour ?

du beau travail le script publié en premier fonctionne chez moi mais sur une version déjà plus ancienne de photoshop →2015
essayé avec des verticales et horizontales de différentes tailles et je les retrouve bien en format carré bandes grises dans le dossier de sauvegarde 1,
par contre sont toutes en format de sortie psd alors qu'elles étaient jpg au départ
foxe

Photos: 2734
foxe

Pixelistes
Pixelistes

Messages: 3378

Inscription: 12 Nov 2016

Boitier 1: - Nikon D750

Objectif 1: - Nikkor 300mm f/2.8G ED-IF AF-S VR

Objectif 2: - Nikkor 800mm f/5.6 ED-IF Ai-S

Objectif 3: - Tamron 90mm f/2.8 Macro VC USD

Re: Besoin d'aide pour créer une action automatisée sur Photoshop

par Dormeur74 » Mercredi 28 Décembre 2022 5:15

bonjour foxe,
Merci pour ton retour,
Je les avais laissées au format PSD pour plus de souplesse, ce qui permettait d'éclaircir ou d'assombrir l'arrière-plan en fonction de la densité de la photo. Ci-dessous, la sauvegarde au format JPEG, mais si on veut aussi le format PSD, il suffit de supprimer la remarque (double slash //) à la ligne 93 (7e ligne avant la fin du script).

Code: Tout sélectionner
#target photoshop                // MAC Finder ou WINDOWS Explorer : on autorise le double clic
app.bringToFront();             // On fait passer Photoshop au 1er plan
displayDialogs = DialogModes.NO;    // Désactivation des boîtes de dialogue

// On mémorise les unités trouvées dans les préférences de l'utilisateur
var regleUnite = app.preferences.rulerUnits;

// ...pour pouvoir travailler en pixels.
app.preferences.rulerUnits = Units.PIXELS;

// Déclaration des variables
var fileFound = false;
var gris = new SolidColor();
gris.rgb.hexValue = '7F7F7F';

// Options de sauvegarde PSD et JPEG
var psd_Options  = new PhotoshopSaveOptions(); 
psd_Options.layers  = true;
psd_Options.embedColorProfile = true;
psd_Options.annotations = true;
psd_Options.alphaChannels = true;
psd_Options.spotColors = true;

var jpeg_Options = new JPEGSaveOptions();
jpeg_Options.embedColorProfile = true;
jpeg_Options.formatOptions = FormatOptions.STANDARDBASELINE;
jpeg_Options.matte = MatteType.NONE;
jpeg_Options.quality = 12;
     
// Traitement
main();

if (fileFound) {
   alert("Traitement terminé. Vos photos ont été sauvegardées dans le sous-dossier " + dossierOut);
}
else {
   alert("Pas de photo trouvée, fin de traitement !");
}

app.preferences.rulerUnits = regleUnite;

function main() {
   // On met toutes les photos trouvées dans un tableau
   var fichier = $.fileName;
   var x1 = fichier.length;
   var script = fichier.replace(/^.*[\\\/]/, '');
   var x2 = script.length + 1;
   // Dossier de sauvegarde à créer
   var dossier = Folder(fichier.substr(0,x1-x2));
   for (var compt=1;compt<1000;compt++) {
      dossierOut = Folder(dossier + "/sauvegarde"+compt);
      if (!dossierOut.exists) {
         dossierOut.create();
         compt = 1000;
      }
   }
   var dossierIn = Folder.selectDialog("Sélectionnez le dossier contenant les photos à traiter. La sauvegarde se fera dans le dossier " + dossierOut);

   var fileList = dossierIn.getFiles(/\.(jpg|)$/i);
   // S'il n'y a pas de photos dans ce dossier, on arrête tout
   if (fileList.length==0)
   {
      fileFound = false;
      return;
   }
   
   // Traitement
    for (var i= 0;i<fileList.length;i++) {
      var docRef = open(fileList[i]);
      var docName = docRef.name.substring( 0, docRef.name.indexOf('.') );

      // Calcul de la largeur des marges gauche, haut, bas
      var largeur = docRef.width;
      var hauteur = docRef.height;
      var dim = largeur;
      if (hauteur >= largeur)
      {
       dim = hauteur;
      }

      // on crée un nouveau document carré dans la plus grande dimension et on le peint en gris
      docRef.selection.selectAll();
      docRef.selection.copy();
      docRef.close(SaveOptions.DONOTSAVECHANGES);
      app.documents.add(dim, dim,300, docName,NewDocumentMode.RGB);
      var docRef = app.activeDocument;
      docRef.selection.selectAll();
      docRef.selection.fill(gris);
      docRef.paste();
      docRef.activeLayer.name = "Photo";

      // On sauvegarde l'image au format JPEG
      //docRef.saveAs(File(dossierOut + '/' + docName + ".psd"), psd_Options, true );
      docRef.flatten();
      docRef.saveAs(File(dossierOut + '/' + docName + ".jpg"), jpeg_Options, true );
      docRef.close(SaveOptions.DONOTSAVECHANGES);
   }
   fileFound = true;
}

Photos: 147
Dormeur74

Membre VIP
Membre VIP

Messages: 1063

Inscription: 21 Oct 2008

Localisation: Haute-Savoie

Poster une réponse
Suivante

Poster une réponse

Citer la selection
 

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités