trucs et astuces de Photoshop... ?

Démarré par iago, Mars 01, 2023, 18:22:40

« précédent - suivant »

ChatOuille

Citation de: Martin D le Mars 15, 2023, 12:51:48
Actions et scripts, c'est la même chose, scripts c'est l'ancienne appellation, dans CS6 c'était encore scripts.
Bien que les deux ont comme but automatiser des opérations, ce n'est pas la même chose du tout, du tout. D'ailleurs, les scripts se trouvent dans le menu Fichier, ce qui n'est pas le cas avec les actions.
J'ai suivi pendant deux années une formation sur Photoshop, c'était en 2003/2004 ou 2005. Je ne sais plus comment la version s'appelait, mais c'était avant CS, et je n'ai jamais entendu parler de scripts à l'époque, mais bien d'actions et droplets ou bulles.

Les scripts se composent avec de la programmation et permettent de créer ce qu'on appelle « formulaires ». Cela facilite fortement l'exécution.
Voici un exemple de script. Il propose un tas d'options. Si on devait faire la même chose avec une Action (rentrer un tas de paramètres l'un après l'autre), ce serait bien plus compliqué et long à exécuter.

Si vous n'avez pas codé des vrais scripts, arrêter de dire j'ai écrit des scripts. Moi, je ne sais pas le faire et je n'ai écrit aucun script, bien que pas mal d'actions.

ChatOuille

Citation de: raymondheru le Mars 15, 2023, 12:57:11
Pas vraiment.
Adobe a effectivement changé l'appellation car le terme script est plus large (et plus complexe) que la simple macro que tout le monde peut faire facilement dans photoshop.
https://helpx.adobe.com/fr/photoshop/using/scripting.html
Je ne vois aucun changement. Pour moi, ça a été toujours comme ça. Ce lien dit:
Photoshop prend en charge l'automatisation externe via la création de scripts. Sous Windows, vous pouvez utiliser les langages de script compatibles avec l'automatisation COM, comme VB Script. Sous macOS, vous pouvez utiliser les langages tels qu'AppleScript, qui permet d'envoyer des événements Apple. Ces langages ne sont pas des langages interplates-formes, mais ils permettent de contrôler plusieurs applications différentes, telles qu'Adobe Photoshop, Adobe Illustrator et Microsoft Office. Sous macOS, vous pouvez également utiliser les actions Photoshop d'Apple pour qu'Automator puisse contrôler les tâches dans Photoshop.

Vous pouvez également utiliser Javascript sur les deux plates-formes. La prise en charge JavaScript permet de créer des scripts Photoshop qui s'exécutent sous Windows ou macOS.

raymondheru

La différence c'est que dans les anciennes versions, les actions s'appelaient "scripts" comme le montre la capture d'écran de Martin D, alors que ça n'en est pas vraiment comme l'indique mon lien.
C'était sûrement une traduction approximative.

ChatOuille

Oui, une très mauvaise traduction. Perso, je n'aime pas non plus Actions. Je les appelle Macros. Car un macro groupe plusieurs "actions" (définition pas selon PS mais selon Larousse).

frmfrm

Citation de: ChatOuille le Mars 15, 2023, 15:34:18
Oui, une très mauvaise traduction. Perso, je n'aime pas non plus Actions. Je les appelle Macros. Car un macro groupe plusieurs "actions" (définition pas selon PS mais selon Larousse).

Ben, j'ai pas suivi la conversation en détail, mais il y a une différence entre Actions et Scripts sur ma version de photoshop.

Les 2 permettent d'effectuer des taches répétitives, mais la "programmation" de la tâche ne se fait pas de la même manière.

Les scripts sous photoshop sont des programmes écrits en Javascript. ( généralement considérés comme des script car en langage interprété ).

Pas franchement simple pour le commun des photographes, pros ou pas ;-)

Par ex. :

doc.convertProfile(profil,Intent.PERCEPTUAL,true,true);

permet une  conversion de profil avec Black point compensation + dithering.

Verso92

Citation de: ChatOuille le Mars 15, 2023, 15:19:41
Si vous n'avez pas codé des vrais scripts, arrêter de dire j'ai écrit des scripts.

C'est comme ça que ça s'appelait dans Photoshop quand je l'ai fait (désolé !).

ChatOuille

A mon avis, Adobe a raté le coche avec la dénomination originale. Ils aurait mieux d'appelé Macro car cet concept existait déjà à l'époque chez Microsoft. Alors on a essayé de traduire dans chaque langue comme on a pu. Alors, comme Action n'est pas très juste on aurait traduit en français par Script, erreur sur erreur car ce concept existe aussi en informatique mais pour autre chose.

D'après ce que j'ai lu, il y aurait plusieurs méthodes pour coder. Il y a JavaScript mais aussi VB Script. Il me semblait que JavaScript c'était juste texte, mais le script que j'ai montré présente un code spécial. On doit passer forcément par un un compilateur ou codeur.

ChatOuille

Citation de: Verso92 le Mars 15, 2023, 16:24:18
C'est comme ça que ça s'appelait dans Photoshop quand je l'ai fait (désolé !).
Mais on est dans une autre époque. Et le con qui a traduit action par script mérite un châtiment !

Verso92

Citation de: ChatOuille le Mars 15, 2023, 16:44:47
Mais on est dans une autre époque. Et le con qui a traduit action par script mérite un châtiment !

Le traducteur a bon dos (si ça se trouve, c'était aussi "script" dans la version anglo-saxonne...).

ChatOuille

Pour les toute premières versions de PS, je ne sais pas, mais vers l'années 2000 c'etait Action. Et je parle dejà avant CS.

ChatOuille

Voilà une partie du code d'un script. On dirait du JavaScript mais "binaire".

raymondheru

Citation de: ChatOuille le Mars 15, 2023, 16:52:30
Pour les toute premières versions de PS, je ne sais pas, mais vers l'années 2000 c'etait Action. Et je parle dejà avant CS.

ça s'appelait effectivement actions en anglais dès son apparition dans la version 4.0
https://www.youtube.com/watch?v=C6ygWlhsbpE&t=2s

frmfrm

Citation de: ChatOuille le Mars 15, 2023, 17:11:26
Voilà une partie du code d'un script. On dirait du JavaScript mais "binaire".

Ouaip mais là, il a été passé à la moulinette pour le rendre illisible et protéger le code des développeurs. Uns sorte d'obfuscation, mais en plus complexe.

Un script lisible est de la forme suivante :

app.bringToFront();

var fpath  = "C:\\Users\\xxx\\Documents\\";
var fname  = "fichier";
var maxdim = 100;
var profil = "sRGB IEC61966-2.1";

app.preferences.typeUnits = TypeUnits.PIXELS;

main ();

function main()
{
    if ( app.documents.length <= 0 )
    {
       alert( "Un document doit etre ouvert..." );
       return;
    }

    for (var ind=0; ind<app.documents.length;ind++)
    {
   app.activeDocument = app.documents[ind];
   Traiterlefichier(ind,app.documents[ind]);
    }
}

...

On peut même utiliser une fonctionnalité cachée pour générer du code automatiquement et permettre sa modification, mais le code généré n'est pas très lisible. Par ex. :

   var id18 = charIDToTypeID( "Mk  " );
      var desc3 = new ActionDescriptor();
       var id19 = charIDToTypeID( "null" );
           var ref1 = new ActionReference();
           var id20 = charIDToTypeID( "AdjL" );
           ref1.putClass( id20 );
      desc3.putReference( id19, ref1 );
       var id21 = charIDToTypeID( "Usng" );
           var desc4 = new ActionDescriptor();
           var id22 = charIDToTypeID( "Type" );
               var desc5 = new ActionDescriptor();
               var id23 = charIDToTypeID( "Clrz" );
               desc5.putBoolean( id23, false );
               var id24 = charIDToTypeID( "Adjs" );
                   var list1 = new ActionList();
                       var desc6 = new ActionDescriptor();
                       var id25 = charIDToTypeID( "LclR" );
                       desc6.putInteger( id25, 1 );
                       var id26 = charIDToTypeID( "BgnR" );
                          desc6.putInteger( id26, 315 );
                      var id27 = charIDToTypeID( "BgnS" );
                       desc6.putInteger( id27, 345 );
                       var id28 = charIDToTypeID( "EndS" );
                       desc6.putInteger( id28, 15 );
                       var id29 = charIDToTypeID( "EndR" );
                       desc6.putInteger( id29, 45 );
                       var id30 = charIDToTypeID( "H   " );
                       desc6.putInteger( id30, 0 );
                       var id31 = charIDToTypeID( "Strt" );
                       desc6.putInteger( id31, valeur );
                       var id32 = charIDToTypeID( "Lght" );
                       desc6.putInteger( id32, 0 );
                   var id33 = charIDToTypeID( "Hst2" );
                  list1.putObject( id33, desc6 );
               desc5.putList( id24, list1 );
           var id34 = charIDToTypeID( "HStr" );
           desc4.putObject( id22, id34, desc5 );
       var id35 = charIDToTypeID( "AdjL" );
       desc3.putObject( id21, id35, desc4 );
   executeAction( id18, desc3, DialogModes.NO );


ChatOuille

Citation de: frmfrm le Mars 15, 2023, 17:57:38
Ouaip mais là, il a été passé à la moulinette pour le rendre illisible et protéger le code des développeurs. Uns sorte d'obfuscation, mais en plus complexe.
Ah, c'est ça. Maintenant je comprends car pour moi il s'agit normalement de texte comme tu montres. C'est un peu dommage, parce que c'est un script gratuit magnifique et s'il n'était pas codé, je pourrais apporter des petites modifications.

Verso92

Citation de: ChatOuille le Mars 15, 2023, 17:11:26
Voilà une partie du code d'un script. On dirait du JavaScript mais "binaire".

Je ne crois pas que ce soit du "binaire"...

Nikojorj

Pas vraiment mais c'est quand même dans le titre : https://extendscript.docsforadobe.dev/extendscript-toolkit/index.html
Après, ce message est aussi en binaire hein. 00111011 01101111 01010000

Verso92

Citation de: Nikojorj le Mars 16, 2023, 07:52:51
Pas vraiment mais c'est quand même dans le titre : https://extendscript.docsforadobe.dev/extendscript-toolkit/index.html
Après, ce message est aussi en binaire hein. 00111011 01101111 01010000

Tu vas passer tes vacances ASCII ?

;-)

ChatOuille

Citation de: Verso92 le Mars 16, 2023, 07:08:50
Je ne crois pas que ce soit du "binaire"...
Non, mais ils appellent ce codage JSXBIN. D'ailleurs seulement apparaissent des caractères ASCII de la première tranche (je dirais entre le 48 et le 125 DEC).

Je viens de lire que c'est quand même compilé. Est-ce pour cacher le code d'origine ou pour accélérer l'exécution ?

iago

Citation de: Verso92 le Mars 15, 2023, 14:03:18
C'est très pratique et rapide, en effet.

Par contre, à l'époque, je n'avais pas réussi à introduire la notion de cadrage horizontal ou vertical. J'avais donc écrit deux scripts : un pour la réduction des photos horizonales, et un autre pour les photos verticales.

Exact : moi itou...

Tonton-Bruno

Bonjour.
Dans la version anglaise de Photoshop, les "Actions" se sont toujours appelées "Actions" en anglais.
La traduction française avait choisi de traduire "Actions" par "Scripts".

Lorsque Photoshop a décidé d'introduire de véritables scripts, qu'on peut programmer en Visual Basic ou en Javascript, il y a eu pendant un certain temps de la confusion dans la version française.

A partir de je ne sais quelle version de Photoshop, la traduction française a été corrigée et a repris les deux termes qui ont toujours existés dans la version originale anglaise: "Actions" et "Scripts".

Selon les besoins, je crée des "Actions", et beaucoup plus rarement des "Scripts".
Les scripts sont beaucoup plus puissants et permettent de faire tout ce qu'on veut, mais c'est de la programmation et au début c'est beaucoup plus long.
Par la suite, quand on a créé une demi-douzaine de scripts, on peut facilement en reprendre un comme base pour en créer un nouveau de structure voisine, et dans ce cas c'est presque aussi rapide à mettre au point qu'une "action" de plus de 10 commandes.