🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: adobe.photoshop.scripting
Article #310

Re: Create strip from image sequence

#310
From: Paul_R
Date: Thu, 05 Feb 2009 21:33
223 lines
5583 bytes
Just tested this and this works recursivly through the folders..


 
#target photoshop 

/////////////////////////////////////////////////////////////////////////////////////////////////  

app.preferences.rulerUnits = Units.PIXELS;  

app.preferences.typeUnits = TypeUnits.PIXELS;  

//////////////////////////////////////////////////////////////////////////////////////////////////  

 

imageFolder = Folder.selectDialog( "Please select input folder");  

folderList=[]; 

if (imageFolder != null)  processFolder(imageFolder);  

folderList = ReturnUniqueSortedList(folderList)  

for(var a = 0;a<folderList.length;a++){ 

   var selectedFolder = folderList[a]; 

var saveFile = decodeURI(selectedFolder);  

saveFile= saveFile.substring((saveFile.lastIndexOf('/')+1));  

saveFile = new File(selectedFolder+'/'+saveFile+'.png'); 

var fileList = Folder(selectedFolder).getFiles();  

for(var aFile = 0; aFile<fileList.length;aFile++){  

   var file = fileList[aFile];  

   if(file instanceof File && file.name.match(/\.png$/i)){  

 

open(file);  

 

////////////////////////////////////////Add Extra Boarder Stripe to maintain relative positon  

var Width =activeDocument.width.value;  

var Height =activeDocument.height.value;  

activeDocument.resizeCanvas(Width+2, Height, AnchorPosition.MIDDLECENTER)  

var Width =activeDocument.width.value;  

var Height =activeDocument.height.value;  

var fillColor = new SolidColor;  

fillColor.rgb.hexValue = '000000';  

activeDocument.selection.select([[0,0],[1,0],[1,Height],[0,Height]], SelectionType.REPLACE, 0, false);  

activeDocument.selection.fill(fillColor, ColorBlendMode.NORMAL, 100, false );  

activeDocument.selection.deselect();  

activeDocument.selection.select([[(Width-1),0],[Width,0],[Width,Height],[(Width-1),Height]], SelectionType.REPLACE, 0, false);  

activeDocument.selection.fill(fillColor, ColorBlendMode.NORMAL, 100, false );  

activeDocument.selection.deselect();  

////////////////////////////////////////  

 

if(documents.length > 1){  

 

////////////////////////////////////////Add to Frame Strip  

activeDocument.selection.selectAll();  

activeDocument.selection.copy();  

activeDocument.close(SaveOptions.DONOTSAVECHANGES);  

activeDocument = documents[0];  

app.activeDocument.resizeCanvas(app.activeDocument.width,app.activeDocument.height+Height, AnchorPosition.TOPCENTER);  

activeDocument.paste();  

activeDocument.selection.selectAll();  

align('AdBt');  

app.activeDocument.selection.deselect();  

activeDocument.mergeVisibleLayers();  

////////////////////////////////////////  

}  

 

}else{  

continue;  

}  

}  

 

////////////////////////////////////////Remove Extra Boarder Stripe and Save  

var Width =activeDocument.width.value;  

var Height =activeDocument.height.value;  

activeDocument.resizeCanvas(Width-2, Height, AnchorPosition.MIDDLECENTER)  

SavePNG(saveFile); 

app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); 

} 

//////////////////////////////////////////////////////////////////////////////////////////////////  

//CUSTOM FUNCTIONS  

//////////////////////////////////////////////////////////////////////////////////////////////////  

 

function align(method) {  

   var desc = new ActionDescriptor();  

   var ref = new ActionReference();  

    ref.putEnumerated( charIDToTypeID( "Lyr " ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );  

    desc.putReference( charIDToTypeID( "null" ), ref );  

    desc.putEnumerated( charIDToTypeID( "Usng" ), charIDToTypeID( "ADSt" ), charIDToTypeID( method ) );  

   executeAction( charIDToTypeID( "Algn" ), desc, DialogModes.NO );  

}; 

function SavePNG(savefile){ 

    pngSaveOptions = new PNGSaveOptions();  

    pngSaveOptions.embedColorProfile = true;  

    pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;  

    pngSaveOptions.matte = MatteType.NONE;  

    pngSaveOptions.quality = 1;  

   pngSaveOptions.PNG8 = false 

    pngSaveOptions.transparency = true;  

activeDocument.saveAs(savefile, pngSaveOptions, true, Extension.LOWERCASE);  

} 

function processFolder(folder) {  

    var fileList = folder.getFiles()  

     for (var i = 0; i < fileList.length; i++) {  

        var file = fileList[i];  

  if (file instanceof File && file.name.match(/\.png$/i)) {  

              folderList.push(file.path);             

  } else   

if (file instanceof Folder) {  

       processFolder(file);  

     }  

   }  

}  

function ReturnUniqueSortedList(ArrayName){  

var unduped = new Object;  

for (var i = 0; i < ArrayName.length; i++) {     

unduped[ArrayName[i]] = ArrayName[i];  

}  

var uniques = new Array;for (var k in unduped) {  

   uniques.push(unduped[k]);}  

uniques.sort();  

return uniques;  

}
Technical Details
Message-ID: <59b6a40f.44@webcrossing.la2eafNXanI>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newshub.sdsu.edu!webcrossing
References: <59b6a40f.-1@webcrossing.la2eafNXanI>

Show Full Headers
Complete Article Headers
X-Google-Thread: f5839,62960464640e583b
X-Google-Attributes: gidf5839,domainid0,public,usenet
X-Google-Language: ENGLISH,ASCII-7-bit
From: Paul_R@adobeforums.com
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newshub.sdsu.edu!webcrossing
Newsgroups: adobe.photoshop.scripting
Subject: Re: Create strip from image sequence
Message-ID: <59b6a40f.44@webcrossing.la2eafNXanI>
Date: Thu, 5 Feb 2009 13:33:08 -0800
References: <59b6a40f.-1@webcrossing.la2eafNXanI>
Lines: 130
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit