5 Replies Latest reply on Jun 18, 2015 9:40 AM by xbytor2

    Photoshop CC 2015 - How to automate the new Export dialogue?!

    Leonavr

      Hey all,

       

      Each image i retouch needs to be saved in 8 different ways (each way is different longest size side). Previously I was resizing the image then exporting it via Save for Web.

       

      Is there a better way? In photoshop 2015 they introduced the new export dialogue but thats not scriptable?!  I want only to define the size of image and export it. Problem with how i am doing it now is that i have to revert the document all the time and it takes a lot of time this way.

       

      Has someone figured out a way to automate the export dialogu so the action remembers at least the enetered values there?

       

      Thank you in advance.

        • 1. Re: Photoshop CC 2015 - How to automate the new Export dialogue?!
          xbytor2 Level 4

          Image Processor Pro may be what you need. CC2015 has some critical scripting UI bugs so I'm going to have to put together a version that works with the new PS but with possibly reduced functionality.

           

          If you have an older rev of PS, try the current version of IPP out and see if that's what you're looking for: ps-scripts - Browse /Image Processor Pro/v3_0_1 at SourceForge.net.

          • 2. Re: Photoshop CC 2015 - How to automate the new Export dialogue?!
            Leonavr Level 1

            I would like a solution that works now rather than later. I mean i can still do it manually, but we are not talking about one image here... I will have a read about the link you posted, not sure how well or if at all it can do what i need.

            • 3. Re: Photoshop CC 2015 - How to automate the new Export dialogue?!
              JJMack Most Valuable Participant

              What is stopping you from using CC 2014? IMO you should never remove old version of Photoshop.  Photoshop seems to be less backwards compatible with each new release.  Adobe does not seem to care if the disrupt user work-flows with each new release. Now they gone a step farther and remove old version by default when you install a new version.  You have to be careful installing Adobe Software.  You also need to be able to work around the bugs in their software.

               

               

              Do not remove old versions till you absolutely sure you do not need it then wait a year and remove it.

               

              The scriptlistenet Plug-in recorded this  in CC 2015 when I used menu File>Export>Save For Web and save a png to my desktop. So it should be scriptable I would think.

               

               

              // =======================================================

              var idExpr = charIDToTypeID( "Expr" );

                  var desc30 = new ActionDescriptor();

                  var idUsng = charIDToTypeID( "Usng" );

                      var desc31 = new ActionDescriptor();

                      var idOp = charIDToTypeID( "Op  " );

                      var idSWOp = charIDToTypeID( "SWOp" );

                      var idOpSa = charIDToTypeID( "OpSa" );

                      desc31.putEnumerated( idOp, idSWOp, idOpSa );

                      var idDIDr = charIDToTypeID( "DIDr" );

                      desc31.putBoolean( idDIDr, true );

                      var idIn = charIDToTypeID( "In  " );

                      desc31.putPath( idIn, new File( "C:\\Users\\John J McAssey\\Desktop" ) );

                      var idFmt = charIDToTypeID( "Fmt " );

                      var idIRFm = charIDToTypeID( "IRFm" );

                      var idPNtwofour = charIDToTypeID( "PN24" );

                      desc31.putEnumerated( idFmt, idIRFm, idPNtwofour );

                      var idIntr = charIDToTypeID( "Intr" );

                      desc31.putBoolean( idIntr, false );

                      var idTrns = charIDToTypeID( "Trns" );

                      desc31.putBoolean( idTrns, true );

                      var idMtt = charIDToTypeID( "Mtt " );

                      desc31.putBoolean( idMtt, true );

                      var idEICC = charIDToTypeID( "EICC" );

                      desc31.putBoolean( idEICC, false );

                      var idMttR = charIDToTypeID( "MttR" );

                      desc31.putInteger( idMttR, 255 );

                      var idMttG = charIDToTypeID( "MttG" );

                      desc31.putInteger( idMttG, 255 );

                      var idMttB = charIDToTypeID( "MttB" );

                      desc31.putInteger( idMttB, 255 );

                      var idSHTM = charIDToTypeID( "SHTM" );

                      desc31.putBoolean( idSHTM, false );

                      var idSImg = charIDToTypeID( "SImg" );

                      desc31.putBoolean( idSImg, true );

                      var idSWsl = charIDToTypeID( "SWsl" );

                      var idSTsl = charIDToTypeID( "STsl" );

                      var idSLAl = charIDToTypeID( "SLAl" );

                      desc31.putEnumerated( idSWsl, idSTsl, idSLAl );

                      var idSWch = charIDToTypeID( "SWch" );

                      var idSTch = charIDToTypeID( "STch" );

                      var idCHsR = charIDToTypeID( "CHsR" );

                      desc31.putEnumerated( idSWch, idSTch, idCHsR );

                      var idSWmd = charIDToTypeID( "SWmd" );

                      var idSTmd = charIDToTypeID( "STmd" );

                      var idMDCC = charIDToTypeID( "MDCC" );

                      desc31.putEnumerated( idSWmd, idSTmd, idMDCC );

                      var idohXH = charIDToTypeID( "ohXH" );

                      desc31.putBoolean( idohXH, false );

                      var idohIC = charIDToTypeID( "ohIC" );

                      desc31.putBoolean( idohIC, true );

                      var idohAA = charIDToTypeID( "ohAA" );

                      desc31.putBoolean( idohAA, true );

                      var idohQA = charIDToTypeID( "ohQA" );

                      desc31.putBoolean( idohQA, true );

                      var idohCA = charIDToTypeID( "ohCA" );

                      desc31.putBoolean( idohCA, false );

                      var idohIZ = charIDToTypeID( "ohIZ" );

                      desc31.putBoolean( idohIZ, true );

                      var idohTC = charIDToTypeID( "ohTC" );

                      var idSToc = charIDToTypeID( "SToc" );

                      var idOCzerothree = charIDToTypeID( "OC03" );

                      desc31.putEnumerated( idohTC, idSToc, idOCzerothree );

                      var idohAC = charIDToTypeID( "ohAC" );

                      var idSToc = charIDToTypeID( "SToc" );

                      var idOCzerothree = charIDToTypeID( "OC03" );

                      desc31.putEnumerated( idohAC, idSToc, idOCzerothree );

                      var idohIn = charIDToTypeID( "ohIn" );

                      desc31.putInteger( idohIn, -1 );

                      var idohLE = charIDToTypeID( "ohLE" );

                      var idSTle = charIDToTypeID( "STle" );

                      var idLEzerothree = charIDToTypeID( "LE03" );

                      desc31.putEnumerated( idohLE, idSTle, idLEzerothree );

                      var idohEn = charIDToTypeID( "ohEn" );

                      var idSTen = charIDToTypeID( "STen" );

                      var idENzerozero = charIDToTypeID( "EN00" );

                      desc31.putEnumerated( idohEn, idSTen, idENzerozero );

                      var idolCS = charIDToTypeID( "olCS" );

                      desc31.putBoolean( idolCS, false );

                      var idolEC = charIDToTypeID( "olEC" );

                      var idSTst = charIDToTypeID( "STst" );

                      var idSTzerozero = charIDToTypeID( "ST00" );

                      desc31.putEnumerated( idolEC, idSTst, idSTzerozero );

                      var idolWH = charIDToTypeID( "olWH" );

                      var idSTwh = charIDToTypeID( "STwh" );

                      var idWHzeroone = charIDToTypeID( "WH01" );

                      desc31.putEnumerated( idolWH, idSTwh, idWHzeroone );

                      var idolSV = charIDToTypeID( "olSV" );

                      var idSTsp = charIDToTypeID( "STsp" );

                      var idSPzerofour = charIDToTypeID( "SP04" );

                      desc31.putEnumerated( idolSV, idSTsp, idSPzerofour );

                      var idolSH = charIDToTypeID( "olSH" );

                      var idSTsp = charIDToTypeID( "STsp" );

                      var idSPzerofour = charIDToTypeID( "SP04" );

                      desc31.putEnumerated( idolSH, idSTsp, idSPzerofour );

                      var idolNC = charIDToTypeID( "olNC" );

                          var list1 = new ActionList();

                              var desc32 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCzerozero = charIDToTypeID( "NC00" );

                              desc32.putEnumerated( idncTp, idSTnc, idNCzerozero );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list1.putObject( idSCnc, desc32 );

                              var desc33 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNConenine = charIDToTypeID( "NC19" );

                              desc33.putEnumerated( idncTp, idSTnc, idNConenine );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list1.putObject( idSCnc, desc33 );

                              var desc34 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwoeight = charIDToTypeID( "NC28" );

                              desc34.putEnumerated( idncTp, idSTnc, idNCtwoeight );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list1.putObject( idSCnc, desc34 );

                              var desc35 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwofour = charIDToTypeID( "NC24" );

                              desc35.putEnumerated( idncTp, idSTnc, idNCtwofour );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list1.putObject( idSCnc, desc35 );

                              var desc36 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwofour = charIDToTypeID( "NC24" );

                              desc36.putEnumerated( idncTp, idSTnc, idNCtwofour );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list1.putObject( idSCnc, desc36 );

                              var desc37 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwofour = charIDToTypeID( "NC24" );

                              desc37.putEnumerated( idncTp, idSTnc, idNCtwofour );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list1.putObject( idSCnc, desc37 );

                      desc31.putList( idolNC, list1 );

                      var idobIA = charIDToTypeID( "obIA" );

                      desc31.putBoolean( idobIA, false );

                      var idobIP = charIDToTypeID( "obIP" );

                      desc31.putString( idobIP, """""" );

                      var idobCS = charIDToTypeID( "obCS" );

                      var idSTcs = charIDToTypeID( "STcs" );

                      var idCSzeroone = charIDToTypeID( "CS01" );

                      desc31.putEnumerated( idobCS, idSTcs, idCSzeroone );

                      var idovNC = charIDToTypeID( "ovNC" );

                          var list2 = new ActionList();

                              var desc38 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCzeroone = charIDToTypeID( "NC01" );

                              desc38.putEnumerated( idncTp, idSTnc, idNCzeroone );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc38 );

                              var desc39 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwozero = charIDToTypeID( "NC20" );

                              desc39.putEnumerated( idncTp, idSTnc, idNCtwozero );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc39 );

                              var desc40 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCzerotwo = charIDToTypeID( "NC02" );

                              desc40.putEnumerated( idncTp, idSTnc, idNCzerotwo );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc40 );

                              var desc41 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNConenine = charIDToTypeID( "NC19" );

                              desc41.putEnumerated( idncTp, idSTnc, idNConenine );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc41 );

                              var desc42 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCzerosix = charIDToTypeID( "NC06" );

                              desc42.putEnumerated( idncTp, idSTnc, idNCzerosix );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc42 );

                              var desc43 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwofour = charIDToTypeID( "NC24" );

                              desc43.putEnumerated( idncTp, idSTnc, idNCtwofour );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc43 );

                              var desc44 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwofour = charIDToTypeID( "NC24" );

                              desc44.putEnumerated( idncTp, idSTnc, idNCtwofour );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc44 );

                              var desc45 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwofour = charIDToTypeID( "NC24" );

                              desc45.putEnumerated( idncTp, idSTnc, idNCtwofour );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc45 );

                              var desc46 = new ActionDescriptor();

                              var idncTp = charIDToTypeID( "ncTp" );

                              var idSTnc = charIDToTypeID( "STnc" );

                              var idNCtwotwo = charIDToTypeID( "NC22" );

                              desc46.putEnumerated( idncTp, idSTnc, idNCtwotwo );

                          var idSCnc = charIDToTypeID( "SCnc" );

                          list2.putObject( idSCnc, desc46 );

                      desc31.putList( idovNC, list2 );

                      var idovCM = charIDToTypeID( "ovCM" );

                      desc31.putBoolean( idovCM, false );

                      var idovCW = charIDToTypeID( "ovCW" );

                      desc31.putBoolean( idovCW, true );

                      var idovCU = charIDToTypeID( "ovCU" );

                      desc31.putBoolean( idovCU, true );

                      var idovSF = charIDToTypeID( "ovSF" );

                      desc31.putBoolean( idovSF, true );

                      var idovCB = charIDToTypeID( "ovCB" );

                      desc31.putBoolean( idovCB, true );

                      var idovSN = charIDToTypeID( "ovSN" );

                      desc31.putString( idovSN, """images""" );

                  var idSaveForWeb = stringIDToTypeID( "SaveForWeb" );

                  desc30.putObject( idUsng, idSaveForWeb, desc31 );

              executeAction( idExpr, desc30, DialogModes.NO );

              • 4. Re: Photoshop CC 2015 - How to automate the new Export dialogue?!
                Leonavr Level 1

                Heh, I guess i will just have to wait for something to easy that burden to come out. The reason why i like the new export dialogue is because it is easy and i don't need the rest of the settings, and if compared to save for web it does a better job. So i will have to find a way, without the scripting knowledge, of how to automate this. There is still AppleScript (giggle)

                • 5. Re: Photoshop CC 2015 - How to automate the new Export dialogue?!
                  xbytor2 Level 4

                  I've released an (almost) fully functioning version beta of Image Processor Pro here: ps-scripts - Browse /Image Processor Pro/v3_2b1 at SourceForge.net

                  The only know functionality that is not working is the Save in Same Location button is broken. I'll have version with a work around posted in a day or two.