Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Making a SAVE AS action for making a stop motion animation

Contributor ,
Sep 22, 2021 Sep 22, 2021

So I am making a stop motion animation using Photoshop. Earlier when I had to edit a lot of photos I've used an action to speed up my process of saving multiple images, but that is when you work with multiple photos. Now I am working with a single file, and I want to make some adjustments and speed up my process of constantly clicking save as ect since I am working with a lot of sequences. I thought when I click the SAVE AS A COPY it will make a new file when I save it, but it just overwrites the previous one. Does anyone know how to overcome this? Thanks

TOPICS
Actions and scripting , Windows
518
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Community Expert ,
Sep 22, 2021 Sep 22, 2021

So, are you looking for a "sequential save"?

 

First save using standard save/format:

 

myFile.psd

 

Then, subsequent sequential saves using a script to the same folder or a sub-folder etc:

 

myFile-1.jpg

myFile-2.jpg

myFile-3.jpg

etc?

 

The myFile.psd or other "parent" doc would stay open onscreen in whatever layer visibility state it is at. Then each sequential save would be a "snapshot" of the current visibility when saving.

 

Similar in a way to using Layer Comps and the Layer Comps to files script.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Sep 22, 2021 Sep 22, 2021

I am doing it manually now, will try this later, but I really don't know anything about scripting in Photosop.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 22, 2021 Sep 22, 2021

You don't need to know how to write a script, I'm just trying to clearly understand your requirements, an existing script may do what you need and or be easily modified.

 

The more concise info and file formats, save options, locations etc. the better! 

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Sep 22, 2021 Sep 22, 2021

Oh, ok. I am making an animation using one photo, for example, a black circle on a white background and that is the first sequence in an animation.  Then I want to inflate that circle a bit with LIQUIFY option, so I inflate it and that is my second sequence. Inflate it a little bit more, that will be the third sequence. To make an animation I need all those files to be for example PHOTO1, PHOTO2, PHOTO3... and there will be like 50 sequences and 50 files to make an animation. I want to save some time of clicking CTL+S all the time and manually rename my files, and to make an action that will do that in just one click. All the files are JPGs, everything needs to be on one folder, and to save it with the standard dialog box with maximum settings.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 22, 2021 Sep 22, 2021
LATEST

Try this script for starters, you can assign a custom keyboard shortcut to it, or insert it into an action and use an F-key shortcut:

 

/* https://community.adobe.com/t5/photoshop/automate-save-as-or-export-with-sequential-file-names/m-p/9003836#M88140 */
// Stephen_A_Marsh
// 05-01-2021
// Additional options & menu add
// Rombout Versluijs
// 14-01-2021

// Usage 
// - Because its being added to menu it can be hotkeyed
// - useFileName > true adds filename as a prefix
// - jpegQuality > sets save quality . range 1-12
// - formatOption > 1 Progressive
//                  2 Optimized Baseline
//                  3 Standard Baseline

/*
@@@BUILDINFO@@@ Quick Export as JPG Incremental.jsx 0.0.0.6
*/
/*
// BEGIN__HARVEST_EXCEPTION_ZSTRING
/*
<javascriptresource>
<name>$$$/JavaScripts/QuickExportAsJPGIncremental/Menu=Quick Export as JPG Incremental...</name>
 <category>scriptexport</category>
<menu>export</menu>
<enableinfo>true</enableinfo>
</javascriptresource>

// END__HARVEST_EXCEPTION_ZSTRING

*/
// alert(documents.length)

#target photoshop

var useFileName = true; // filename as prefix: true - false
var jpegQuality = 10; // 1-12
var formatOption = 3; // 1-3         

/* Start Open/Saved Document Error Check - Part A: Try */
savedDoc();

function savedDoc() {
    // try {
    app.activeDocument.path;
    /* Finish Open/Saved Document Error Check - Part A: Try */

    /* Main Code Start */
    // https://forums.adobe.com/message/4453915#4453915
    main();

    function main() {
        if (!documents.length) return;
        var Name = app.activeDocument.name.replace(/\.[^\.]+$/, '');
        var savePath = activeDocument.path;
        var fileList = [];
        if (useFileName) {
            var fileList = savePath.getFiles(Name + "*.jpg").sort().reverse();
        } else {
            var fileList = savePath.getFiles("*.jpg").sort().reverse();
            var filtered = [];
            for (i in fileList) {
                var name = String(fileList[i]).split("/").pop(); // Get filename
                name = name.slice(0, name.length - 4); // Split extension from name
                // alert(name+" "+!isNaN(name))
                // https://stackoverflow.com/questions/651563/getting-the-last-element-of-a-split-string-array
                if (!isNaN(name)) filtered.push(name); // Check if name is a number or not > fullname needs to be numbers
            }
        }
        var Suffix = 0;
        if (fileList.length) {
            if (useFileName) {
                Suffix = fileList[0].name.replace(/\.[^\.]+$/, '').match(/\d+$/); // Fix for mix of characters & numbers
                Suffix = Number(String(Suffix).slice(String(Suffix).length - 1, String(Suffix).length)); // Fix for Windows

                // alert((fileList[0].name).slice(25,26))
                // alert((fileList[0].name.replace(/\.[^\.]+$/, '').match(/\d+$/)).slice(fileList[0].name.length-5,fileList[0].name.length-4))
                // alert((fileList[0].name.replace(/\.[^\.]+$/, '').match(/\d+$/)).slice(fileList[0].name.length-1,fileList[0].name.length))
                // alert((fileList[0].name).slice(fileList[0].name.length-1,fileList[0].name.length))
                // Suffix = Number(fileList[0].name.replace(/\.[^\.]+$/, '').match(/\d+$/)); // strips numbers when mixed
                // Suffix = Number(fileList[0].name.match(/\d+$/)); // return true name even when mixed numbers and characters
            } else if ((!filtered[0] === undefined) || filtered[0]) {
                Suffix = Number(filtered[0].replace(/\.[^\.]+$/, '').match(/\d+$/));
            }
        }
        Suffix = zeroPad(Suffix + 1, 3);
        Name = useFileName ? (Name + "_") : "";
        var saveFile = File(savePath + "/" + Name + Suffix + ".jpg");
        SaveJPEG(saveFile, jpegQuality, formatOption);
    }

    function SaveJPEG(saveFile, jpegQuality, formatOption) {
        jpgSaveOptions = new JPEGSaveOptions();
        jpgSaveOptions.embedColorProfile = true;
        if (formatOption === 1) {
            jpgSaveOptions.formatOptions = FormatOptions.PROGRESSIVE;
            jpgSaveOptions.scans = 3;
        } else if (formatOption === 2) {
            jpgSaveOptions.formatOptions = FormatOptions.OPTIMIZEDBASELINE;
        } else {
            jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
        }
        jpgSaveOptions.matte = MatteType.NONE;
        jpgSaveOptions.quality = Number(jpegQuality);
        activeDocument.saveAs(saveFile, jpgSaveOptions, true, Extension.LOWERCASE);
    }

    function zeroPad(n, s) {
        n = n.toString();
        while (n.length < s) n = '0' + n;
        return n;
    }
    /* Main Code Finish */
    // }

    /* Start Open/Saved Document Error Check - Part B: Catch */
    // catch (err) {
    //     alert(err)
    //     // alert("An image must be open and saved before running this script!");
    // }
}
/* Finish Open/Saved Document Error Check - Part B: Catch */

 

Downloading and Installing Adobe Scripts

installed-script.png

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines