Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

I am trying to create a sequence just like this:

sequence of images

Link

The issue is, my sequence is much longer: 439 frames. I have the PNG files, I just need to merge them to be side-by-side like it is in the link. I've tried fiddling around with using actions and droplets, but I can't get it to behave like I want. How can I do it?

share|improve this question
2  
Is Photoshop a hard requirement or are you open to other solutions? –  JohnB Feb 20 at 14:06
1  
Expanding on JohnB's comment - InDesign has a built in script for this. –  John Feb 20 at 16:31

3 Answers 3

I would recommend Imagemagick as the appropriate tool here. It has a high learning curve, but is much faster than Photoshop for this sort of batch processing.. The following command should work:

convert inputFolder/* +append output.png

where inputFolder is a folder containing only the images you're interested in. They should be named in sequence (001, 002, 003...)

If you can't use Imagemagick, a Google search for "Photoshop Filmstrip Script" yields many results, such as this one.

share|improve this answer

I hope my script can tell you what to do: gist

Loading stack of images (one layer above another):

function loadStack(name,size){
var d;
for (var i = 0; i < size; i++) {
    var fileNum = sprintf("%05d",i);
    var f = new File(sourcePath+'fr'+name+'_'+fileNum+'.png');
// you can use your own file selection
    if(i==0){
// operating on first file in sequence
        app.open(f);
        d = app.activeDocument;
        d.activeLayer.name = fileNum;
    }else{
// adding file content to new layer
        d.artLayers.add();
        d.activeLayer.name = fileNum;
        app.open(f);
        app.activeDocument.selection.selectAll();
        app.activeDocument.selection.copy();
        app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
        d.paste();
    }
}
}

Next I simply do rows with my stack:

function doRows(rows,cols){
var d = app.activeDocument;
var w = d.width;
var h = d.height;
d.resizeCanvas(w*cols,h*rows,AnchorPosition.TOPLEFT);
for (var j = 0; j < cols; j++) {
    for (var i = 0; i < rows; i++) {
// using numbered layers
        var fileNum = sprintf("%05d", j*rows+i );
        d.artLayers.getByName(fileNum).translate(w*j, h*i);
    }
}
}
share|improve this answer

manually doing this is going to be your best bet. Turn on guides, turn on rulers, drop a guide at the edge of each new frame you add... and get some coffee. The fluctuations in image size and the nature of taxing memory on something this massive at the speed of an action mean that humanly doing this is likely to work better.

There maybe many "work-arounds" to your end goal that are faster. Can you describe that end goal?

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.