Batch Automation Automated aspect ratio???

#1
Hey all,


Just like to say hi, thins is my first post here, I've been wracking my brains over this one. I need to take 100s of jpegs of different sizes and have an action or AppleScript crop them to a specific aspect ratio, say for example 4:3. But I want it to do this regardless of pixel size. So the script would look at the width and then crop the height accordingly to make 4:3


Any ideas anyone?


Thanks in advance.


Scott
 

Paul MR

The Script Master
#2
You can use a script to do this...
Code:
#target photoshop;
app.bringToFront();
main();
function main(){
if(!documents.length) return;
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var W = activeDocument.width;
var H = activeDocument.height;
var ratio = "4:3";
ratio = ratio.split(":");
if(W<H) ratio=ratio.reverse();
var Hpics =(W/Number(ratio[0]))*Number(ratio[1]);
if(Hpics > H){
    Wpics = (H/Number(ratio[1]))*Number(ratio[0]);
    Hpics = H;
    }else{
        Wpics = W;
        }
var Left,Top,Right,Bottom=0;
if (W==Wpics) Left = 0; Right = W; 
if (W!=Wpics) {
    var diffw = (W-Wpics)/2;
    Left = diffw; Right = Wpics+diffw;
    }
if (H==Hpics) Top = 0; Bottom = H;
if( H!=Hpics){
    var diffh = (H-Hpics)/2;
    Top = diffh; Bottom = Hpics+diffh;
    }
activeDocument.selection.select([[Left,Top],[Right,Top],[Right,Bottom],[Left,Bottom]], SelectionType.REPLACE, 0, false); 
executeAction(charIDToTypeID( "Crop" ), new ActionDescriptor(), DialogModes.NO );
activeDocument.selection.deselect();
app.preferences.rulerUnits = strtRulerUnits;
};
 

Paul MR

The Script Master
#6
The code is correct, it might be that you are not using a plain text editor?
Some editors will add control characters that will stop the script working.
 
#7
Thanks Paul, spot on.

I found a code editor called sublime txt, change the code using that and it worked beautifully.
Thanks for taking the time to help me out, appreciate it.

Scott