6 Replies Latest reply on Jan 13, 2014 12:47 AM by patdepri

    I need to create an action or script to save the file with the name of the selected layer

    patdepri

      I need to create an action or script to save the file with the name of the selected layer (not including the hidden layers, but including those visible).

       

       

      How could modify the script: 'Layer Comps To Files.jsx' to get the result?

       

       

      Warning: I do not need to export all layers as files.

       

       

      Who can help me?

       

      THX in advance

        • 1. Re: I need to create an action or script to save the file with the name of the selected layer
          c.pfaffenbichler Level 9

          Say what?

          Could you please post a screenshot to illustrate the issue (original file and layer structure and the resulting files)?

          • 2. Re: I need to create an action or script to save the file with the name of the selected layer
            patdepri Level 1

            For example:

             

             

            I have a file with several layers:

             

             

            - Article 1 (visible)

            - Article 2 (hidden)

            - Article 3 (hidden)

            - Article 4 (hidden)

            - Article 5 (hidden)

            etc..

            - Background (visible)

             

             

            Only Article 1 and the background are visible.

             

             

            Now I have to save each article (visible) with the background always active (or other layers visible) and the name of the file must always contain the name of the slected article.

             

             

            For 2 or 3 times you can do it ...

            but for a hundred? ...

             

             

            So, I want to create an action or script that, by selecting the layer with the name of the article (visible), save a copy with the name of the selected layer (with all others visible layers).

             

             

            However, I think it was clear from the first, just to save a copy of all visible layers with the name of the selected layer.

            • 3. Re: I need to create an action or script to save the file with the name of the selected layer
              c.pfaffenbichler Level 9

              If I understand correctly this would basically need »Delete Hidden Layers« and »Save As« – the first can be recorded with ScriptingListener.plugin and the second part can be done with DOM code.

              Is there a naming convention to the articles and is the background the Background Layer or is it just the lowermost visible Layer?

               

              But let me ask about something else: Why would you rather write all that text instead of posting two (ot three) screenshots of a mocked up file?

              • 4. Re: I need to create an action or script to save the file with the name of the selected layer
                patdepri Level 1

                Versione in Italiano e Inglese

                 

                 

                 

                 

                Salva il file col livello selezionato

                 

                 

                 

                 

                Grazie in anticipo per la risposta e per quelle che verranno (spero ...).

                 

                 

                Non sono così esperto da usare 'ScriptingListener.plugin' che tuttavia trovo interessante e non ho compreso cosa è DOM code.

                 

                 

                A parte questo...

                 

                 

                Sono riuscito a risolvere il problema con la registrazione di una 'azione' ed il richiamo di un script che ho modificato (intendo della versione CS5).

                 

                 

                 

                 

                Con queste immagine penso di farvi capire l'obiettivo che volevo raggiungere, già descritto sopra...

                 

                A breve spiegherò come...

                 

                 

                 

                English version

                 

                 

                Save with Name of the Selected Layer

                 

                 

                 

                 

                Thanks in advance for your reply and for those to come (I hope ... ) .

                 

                 

                I am not so expert to use 'ScriptingListener.plugin' which, however, I find it interesting and I did not understand what is DOM code.

                 

                 

                Other than that ...

                 

                 

                I managed to solve the problem with the registration of an 'action' and calling a script that I modified (I mean the CSS version 5).

                 

                 

                 

                 

                With these images I think you understand the goal I wanted to achieve, as described above ...

                 

                Shortly explain how ...

                 

                 

                ex1.png

                 

                ex3.png

                 

                ex2.png

                • 5. Re: I need to create an action or script to save the file with the name of the selected layer
                  patdepri Level 1

                  Versione in Italiano (Further down the English version)

                   

                  NB - Nella versione inglese ho messo tutte le immagini dei menu in italiano.

                   

                   

                  Versione per Mac, ma credo sia identico per Windows.

                   

                  Spiego passo passo cosa ho fatto:

                   

                   

                  - Ho creato un file esempio con tre Livelli, salvato sulla scrivania e ho chiuso il file.

                  - Ho aperto il file e selezionato il Livello al centro per iniziare a registrare una azione che ho chiamato: Save with Name of Selected Layer

                  - Nuova azione

                  - Dare il nome e premere Registra

                   

                   

                  Ora salva…

                   

                   

                  - Menu --> Livello --> Nuovo --> Livello... e premi -ok-, (lascia il nome che viene mostrato)

                  - Ancora una volta Menu --> Livello... --> Nuovo --> Livello... e premi -ok-, (lascia il nome che viene mostrato)

                  - Menu --> Livello --> Ordina --> Dietro

                  - Menu --> Livello --> Unisci sotto

                  - Menu --> Livello --> Unisci visibili

                  - Menu --> Livello --> Nuovo --> Livello... e premi -ok-, (lascia il nome che viene mostrato)

                  - Menu --> Livello - Nascondi Livello

                  - Menu --> Elimina --> Elimina livelli nascosti (press -Yes-)

                  - Menu --> Livello --> Nuovo --> Livello... Inserisci questo: 'Move this to the trash' e premi ok

                  - Menu --> File --> Script --> Esporta Livelli in File... (Nella finestra che si apre scegliere l’opzione che si desidera, ma togliere il prefisso del nome) e premere -Esegui-

                  - Selezionare il pannello Storia cliccare su Elimina premendo -Si- ogni volta che si apre la finestra di dialogo (Ripetere 8 volte questa operazione sino ad arrivare nella storia alla condizione di partenza. Ho visto che è meglio di Ripristina -F12-)

                  - Fermare la registrazione.

                   

                   

                  A questo punto, mandando in esecuzione questa Azione, ho raggiunto parzialmente l’obiettivo perché i file così creati mantengono, purtroppo, dei prefissi numerici per evitare probabilmente la sovrascrizione di file (credo senza avviso) nel posto dove vengono creati.

                   

                   

                   

                  Per ottenere l’obiettivo occorre un nuovo passo ed a proposito di questo riferisco quanto segue:

                   

                  ATTENZIONE - L’operazione descritta qui di seguito deve essere fatta su di una copia del file, per cui:

                  - Duplicare il file,

                  - Spostare l’originale in altra cartella

                  - Lavorare sul file duplicato.

                   

                  mi riferisco a questo...

                  a.png

                   

                  ATTENZIONE - Questa modifica è effettuata a proprio rischio e pericolo ed il sottoscritto non si assume alcuna responsabilità su quanto venga fatto soprattutto da mani inesperte.

                   

                  ATTENZIONE - Questa modifica sovrascrive qualsiasi file che abbia nome uguale al layer che viene selezionato più l’estensione del file naturalmente.

                   

                   

                  Comunque la modifica è banalissima e a portata di chiunque.

                   

                   

                   

                   

                  Procedere così:

                   

                  - Chiudere Photoshop

                  - Aprire (nel percorso specificato dall’immagine) il file “Export Layers to Files.jsx” (Export Layers To Files.jsx 1.0.0.16) con un editor di testo puro.

                   

                  - cercare la stringa (dovrebbe essere in riga 1029)

                   

                  var fileNameBody = fileNamePrefix;

                  fileNameBody += "_" + zeroSuppress(i, 4);

                  fileNameBody += "_" + layerName;

                   

                  - sostituirla con:

                   

                  var fileNameBody = fileNamePrefix;

                  fileNameBody += layerName;

                   

                  - cercare la stringa (dovrebbe essere in riga 1047-46)

                   

                  var fileNameBody = fileNamePrefix;

                  fileNameBody += "_" + zeroSuppress(i, 4) + "s";

                   

                  - sostituirla con:

                   

                  var fileNameBody = fileNamePrefix;

                  fileNameBody += "";

                   

                   

                  - salvare e uscire.

                   

                  - riavviare Photoshop

                   

                  - provare l’azione registrata facendo attenzione che il nome del layer non sia identico al nome di un file già presente altrimenti questo verrà sovrascritto.

                   

                   

                  Domanda:

                  Perché ho creato livelli che poi ho eliminato ecc.

                   

                  Risposta:

                  Semplice per evitare errori di esecuzione delle azioni nel caso di operazioni con livelli mancanti o altro.

                  Semplice... no?

                   

                   

                   

                   

                  English version

                   

                   

                  Mac version, but I think it's the same for Windows.

                   

                  First of all, I'm translating the actions that I made using the Italian version of Photoshop, you look at the position of the menu that I have chosen to do the work with other languages.

                   

                   

                  I explain step by step what I did:

                   

                   

                  - I created a sample file with three layers, saved to the desktop and I closed the file.

                  - I opened the file and select the layer at the center to start recording an action that I called: Save with Name of the Selected Layer

                  - New action

                  a.png

                   

                  - Give the name and press Save ( I think it is so in English )

                   

                  b.png

                   

                  Now save ...

                   

                   

                  - Menu -> Layer - > New —> Layer… and press -ok- , (leave the name that is shown)

                   

                  c.png

                   

                  - Once again Menu -> Layer - > New —> Layer… and press -ok- , (leave the name that is shown)

                   

                  c.png

                   

                  - Menu -> Layer - > Arrange (order) -> Behind

                  d.png

                   

                  - Menu -> Layer - > Merge Down

                   

                  e.png

                   

                  - Menu -> Layer - > Merge Visible

                   

                  f.png

                   

                  - Menu -> Layer - > New —> Layer… and press -ok- , (leave the name that is shown)

                   

                  c.png

                   

                  - Menu -> Layer - Hide Layer

                   

                  g.png

                   

                  - Menu - > Delete - > Delete hidden layers (press -Yes- )

                   

                  h.png

                   

                  - Menu -> Layer - > New —> Layer… Enter this: ' Move this to the trash ' and press ok

                   

                  i.png

                   

                  - Menu -> File - > Scripts -> Export Layers To Files... (In the window that opens select the option you want, but take away the name prefix) and press - Run -

                   

                  l.png

                   

                  m.png

                   

                  - Select the History panel and click Delete (on menu opened) pressing -Yes- every time when open the dialog box (8 times Repeat this step until you get into the story to the starting condition. Not use Restore -F12-).

                   

                  n.png

                   

                  - Stop recording.

                   

                   

                  At this point, by executing this action, I have reached the goal partly because the files created in this way remain, unfortunately, the numerical prefixes to avoid possibly overwriting of files (I think without notice) in the place where they are created.

                   

                   

                  To achieve the goal we need a new step and thinking about this as follows:

                   

                   

                  WARNING - The operation described below should be made on a copy of the file, so :

                  - Duplicate the file

                  - Move the original folder to another

                  - Work on the duplicate file.

                   

                  a.png

                   

                  WARNING - This modification is performed at your own risk and the undersigned assumes no responsibility on what is done mostly by inexperienced hands.

                   

                  WARNING - This change will overwrite any files with the same name as the selected layer plus the file extension of course.

                   

                   

                  However, the change is trivial and within reach of anyone.

                   

                   

                  Proceed as follows:

                   

                   

                  - Close Photoshop

                  - Open (in the specified path from the image ) file " Export Layers to Files.jsx " (Export Layers To Files.jsx 1.0.0.16) with a pure text editor.

                   

                   

                  - Search for the string (should be in line 1029 )

                   

                  var = fileNameBody fileNamePrefix ;

                  fileNameBody = + "_" + zeroSuppress (i, 4 ) ;

                  fileNameBody + = "_ " + layerName ;

                   

                  - Replace it with :

                   

                  var = fileNameBody fileNamePrefix ;

                  fileNameBody + = layerName ;

                   

                   

                   

                   

                  - Search for the string (should be in line 1047-46 )

                   

                  var = fileNameBody fileNamePrefix ;

                  fileNameBody + = "_ " + zeroSuppress (i, 4) + "s" ;

                   

                  - Replace it with :

                   

                  var = fileNameBody fileNamePrefix ;

                  fileNameBody + = "";

                   

                  - Save and exit.

                   

                   

                  - Restart Photoshop

                   

                   

                  - Try the recorded Action, making sure that the layer name is not identical to the name of an existing file otherwise it will be overwritten.

                   

                   

                   

                  Question:

                  Why I created levels which I then deleted etc..

                   

                   

                  Answer:

                  Simple to avoid errors of execution of the actions in the case of transactions with missing levels and other.

                  Simple ... is not it?

                   

                   

                   

                  Sorry for my bad English...

                   

                  Thanks in advance for any hint.

                   

                  --->>> Please think about this... Adobe <<<---

                  • 6. Re: I need to create an action or script to save the file with the name of the selected layer
                    patdepri Level 1

                    Ho dimenticato di dire...

                     

                     

                    Quando il file modificato 'Export Layers to Files.jsx'  ha terminato la sua funzione sostituirlo con quello originale.

                     

                     

                    Mi sembra ovvio...

                     

                     

                    Credo che Adobe consenta la modifica degli script, in caso contrario tralasciate l'ultima parte descritta.

                     

                     

                     

                     

                    I forgot to mention ...

                     

                     

                    When the modified file 'Export Layers to Files.jsx' has finished its function replace it with the original.

                     

                     

                    It seems obvious ...

                     

                     

                    I believe that Adobe allows editing scripts, otherwise leave out the last part described.