Skip to main content
Participant
August 24, 2017
Question

Slicing a very image (24k px x 34k px) into smaller crops

  • August 24, 2017
  • 5 replies
  • 5105 views

I need to slices a very large piece of artwork into 117 smaller crops to then reassemble as an art installation.

 

I thought I could use the slice tool to cut the artwork into several smaller exports but there doesn't seem to be an option, maybe because its a .PSB large format file

 

I need to be able to export as a print ready file

 

Any ideas?

This topic has been closed for replies.

5 replies

Kukurykus
Legend
April 12, 2020

Modertator, add Actions and Scripting label to this thread.

davescm
Community Expert
Community Expert
April 12, 2020

"Moderator, add Actions and Scripting label to this thread."

Done 🙂

c.pfaffenbichler
Community Expert
Community Expert
August 26, 2017

// split image into x times y segments and save them as jpgs;

// 2017, use it at your own risk;

#target photoshop

if (app.documents.length > 0) {

var originalUnits = app.preferences.rulerUnits;

app.preferences.rulerUnits = Units.PIXELS;

// document;

var myDocument = app.activeDocument;

var theName= myDocument.name.match(/(.*)\.[^\.]+$/)[1];

var thePath = myDocument.path;

var theCopy = myDocument.duplicate("copy", true);

// the numbers;

var theX = 9;

var theY = 13;

var xFrac = myDocument.width/theX;

var yFrac = myDocument.height/theY;

// psd options;

psdOpts = new PhotoshopSaveOptions();

psdOpts.embedColorProfile = true;

psdOpts.alphaChannels = true;

psdOpts.layers = true;

psdOpts.spotColors = true;

// jpg options;

var jpegOptions = new JPEGSaveOptions();

jpegOptions.quality = 9;

jpegOptions.embedColorProfile = true;

jpegOptions.matte = MatteType.NONE;

// create folder;

var folderName = thePath+"/"+theName+"_"+theX+"x"+theY;

if (Folder(folderName).exists == false) {Folder(folderName).create()};

//save jpgs;

for (var n = 1; n <= theY; n++) {

for (var m = 1; m <= theX; m++) {

cropTo((m-1)*xFrac, (n-1)*yFrac, m*xFrac, n*yFrac);

var theNewName = theName+"_"+bufferNumberWithZeros(m, 3)+"_"+bufferNumberWithZeros(n, 3);

theCopy.saveAs((new File(folderName+"/"+"_"+theNewName+".jpg")),jpegOptions,true);

theCopy.activeHistoryState = theCopy.historyStates[0];

//executeAction( charIDToTypeID("undo"), undefined, DialogModes.NO );

}

};

theCopy.close(SaveOptions.DONOTSAVECHANGES);

// reset;

app.preferences.rulerUnits = originalUnits;

};

////// buffer number with zeros //////

function bufferNumberWithZeros (number, places) {

var theNumberString = String(number);

for (var o = 0; o < (places - String(number).length); o++) {

theNumberString = String("0" + theNumberString)

};

return theNumberString

};

////// crop //////

function cropTo (x1, y1, x2, y2) {

// =======================================================

    var desc7 = new ActionDescriptor();

        var desc8 = new ActionDescriptor();

        var idPxl = charIDToTypeID( "#Pxl" );

        desc8.putUnitDouble( charIDToTypeID( "Top " ), idPxl, y1 );

        desc8.putUnitDouble( charIDToTypeID( "Left" ), idPxl, x1);

        desc8.putUnitDouble( charIDToTypeID( "Btom" ), idPxl, y2 );

        desc8.putUnitDouble( charIDToTypeID( "Rght" ), idPxl, x2 );

    var idRctn = charIDToTypeID( "Rctn" );

    desc7.putObject( charIDToTypeID( "T   " ), idRctn, desc8 );

    desc7.putUnitDouble( charIDToTypeID( "Angl" ), charIDToTypeID( "#Ang" ), 0.000000 );

    desc7.putBoolean( charIDToTypeID( "Dlt " ), false );

    desc7.putEnumerated( stringIDToTypeID( "cropAspectRatioModeKey" ), stringIDToTypeID( "cropAspectRatioModeClass" ), stringIDToTypeID( "pureAspectRatio" ) );

    desc7.putBoolean( charIDToTypeID( "CnsP" ), false );

executeAction( charIDToTypeID( "Crop" ), desc7, DialogModes.NO );

};

Norman Sanders
Legend
August 25, 2017

The sample below consists of 99 (9x11) squares but a 9x13 grid (total 117) in your dimensions would handled in a similar fashion:

Guides dragged out from the top and side rulers. View > Snap to Guides. Rectangular Marquee tool. Separate layer for each fragment,

The sample below shows some of the images in the grid. Added the final image, with the original image ghosted, for clarity.

PECourtejoie
Community Expert
Community Expert
August 25, 2017

Hello, how do you intend to print? Some printers can tile automatically a large image on several pages...

c.pfaffenbichler
Community Expert
Community Expert
August 24, 2017

Any ideas?

Scripting. But please provide an exact and specific explanations including the pixel dimensions, overlap needs, …

Photoshop Scripting

Participant
August 25, 2017

It's 2376mm x 2886mm at 300dpi. Needs to be split into (117) 264mm x 222mm print ready JPGs. I currently have it in PSB format

There is no need for overlap for bleed, they're being mounted together but not edge to edge so I'm happy to sacrifice the bleed. The individual mounts are set to different angles so edges wont meet.

This is a 3d mock of the final piece

c.pfaffenbichler
Community Expert
Community Expert
August 25, 2017

How many rows and lines?