9 Replies Latest reply: Apr 30, 2009 9:11 AM by Paul Riggott RSS

    Complex Script For Automating Conversion of High Res Images to Web

    Sean Larkin

      I use Actions in Photoshop (currently using CS4) all the time, but have never delved into the scripting capabilities, so please forgive me if these questions are obvious.

      The basic description of my project is simply creating web images in jpg format, from our library of high-res print images.

      We're going to have one folder with a copy of all the images we need to convert. File types range from EPS, TIF, PSD and JPG.

      The challenges (to me) are:

      1. these images vary in orientation of being tall or wide; I need the greater of the dimensions, whether it be height or width, to be 400 pixels; and then I need canvas added to the other dimension to make the image a perfect 400 x 400 square. I don't know how to, or if I can, make PS choose the greater of the dimensions, to set it to 400 px.

      2. some of these images have clipping paths; i need to use those paths to erase the background in the photos; the names of these clipping paths are not the same in every image.


      So, the basic flow of the script would be open the file; set the max dimension to 400 px; add white canvas to fill the other dimension and make that also 400px; use the image's clipping path if it has one to erase the image's background; save for web as jpg, appending "-400" to the end of filename (but before the ".jpg"); set size to 115 and save for web, appending "-115" to the name; set size to 80 and save for web, appending "-80" to the name.

        • 1. Re: Complex Script For Automating Conversion of High Res Images to Web
          MarkWalsh Community Member

          You can use Image Processor (Scripts:Image Processor) to resize to fit in a specific size. It will resize to fit inside those dimensions. You can save out as a PSD, Jpeg and/or TIFF. You can also specify an action to run, create an action to use the clipping path as a mask on your layer. You might need a few extra steps to make sure the action works with all of your images (e.g. merge visible before masking in case there are multiple layers).

           

          If the image processor doesn't get you all of the way to where you want, or the output isn't what you need (e.g. gif, png), you can set the output to PSD, and run another batch action on the resulting files to finish the job.

          • 2. Re: Complex Script For Automating Conversion of High Res Images to Web
            Paul Riggott Community Member

            I have modifed one of my scripts that should do everything for you, it can be download here...

            http://ps-scripts.com/bb/viewtopic.php?t=2625

            • 3. Re: Complex Script For Automating Conversion of High Res Images to Web
              Sean Larkin Community Member

              Paul.... That is great stuff. Thank you so much!

               

              I just ran it on a folder to test it out, and it works great, although I noticed a few files had oddities in their names.  Here is an example:

              SDL-DragonflyBackFlatClear-40#0

               

              That's the filename, and it is missing the .jpg extension.  Perhaps the original filename was too long? The same thing happens on the other 2 size versions of this image.

               

               

               

              Did you create this using the Image Processor script as the base?  The reason I ask is because I had tried the Image Processor a little bit before you replied, and although it wasn't the complete solution I needed, it did have two different things that would be great to have in your script.  So basically, if it'd be easy to copy and paste those things from the Image Processor script into yours, than I'd ask.... but if it's complicated, I wouldn't trouble you, because you've already been kind enough to write me a version of your script.

               

              The two things are:

              the ability to include sub-folders (i have 100+ sub-folders)

              and the way Image Processor creates a folder called JPEG in every folder/subfolder, for the processed images.

               

              Your script is already saving me enough time, that I can use it as is. but if it's an easy copy/paste to add those 2 Image Processor functions, I'd be thrilled to have them.

               

              Thanks Paul!!

              • 4. Re: Complex Script For Automating Conversion of High Res Images to Web
                Paul Riggott Community Member

                The problem with filename could be a setting within Photoshop, try this...

                Open a document in Photoshop then ..
                File - Save for Web & Devices
                at the right hand side of the preset dropdown box there is a downarrow click this and select edit output settings.
                Keep clicking next until you see "Filename Compatibility" and untick "Mac OS 9"

                No it isn't based on "Image Processor" it was based on my Save For Web CS4.

                The script will need to have a fairly major change to add those options, so I will have a look at it tomorrow Sean.

                • 5. Re: Complex Script For Automating Conversion of High Res Images to Web
                  Paul Riggott Community Member

                  A new version has been up uploaded to PS-Scripts Sean this now creates a folder of each selected folder with the name of "JPEG" and it has the option of Include Sub Folders.

                  • 6. Re: Complex Script For Automating Conversion of High Res Images to Web
                    Sean Larkin Community Member

                    Thank you Paul!  I will test it out when I get back to the office and let you know how it worked. Thank you for your time and generosity!

                     

                    -Sean

                    • 7. Re: Complex Script For Automating Conversion of High Res Images to Web
                      Sean Larkin Community Member

                      Paul,

                       

                      I tested it out this morning and it works great!  Thank you so much!!!

                      • 8. Re: Complex Script For Automating Conversion of High Res Images to Web
                        Sean Larkin Community Member

                        Hey Paul,

                         

                        I was asked to add a size to the script.  I cracked it open myself and changed this section:

                         

                        --

                         

                        doc.flatten();

                        resetColours();

                        app.activeDocument.resizeCanvas(400, 400, AnchorPosition.MIDDLECENTER);

                        if(win.panel0.Progressive.value)  Progressive = 4;

                        Cs4SFW(Filename+ext,Quality,MetaData,Profile,Progressive);

                        doc.resizeImage(undefined, 200, undefined, ResampleMethod.BICUBICSMOOTHER);

                        ext = "-200.jpg";

                        Cs4SFW(Filename+ext,Quality,MetaData,Profile,Progressive);

                        doc.resizeImage(undefined, 115, undefined, ResampleMethod.BICUBICSMOOTHER);

                        ext = "-115.jpg";

                        Cs4SFW(Filename+ext,Quality,MetaData,Profile,Progressive);

                        doc.resizeImage(undefined, 80, undefined, ResampleMethod.BICUBICSMOOTHER);

                        ext = "-80.jpg";

                        Cs4SFW(Filename+ext,Quality,MetaData,Profile,Progressive);

                        app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

                        $.gc();

                         

                        --

                         

                        All I did was copy the lines for the 115 size, and change them to 200.  And I changed the "Progressive =" from 3 to 4, which was just a guess.

                         

                        I tested it out and it worked fine.

                        • 9. Re: Complex Script For Automating Conversion of High Res Images to Web
                          Paul Riggott Community Member

                          Nice work Sean, except Progressive should still be 3 not 4. This is a value that is used if the Progessive checkbox is ticked and how the jpeg is created.