Skip to main content
Participant
December 8, 2021
Question

Import slices photoshop

  • December 8, 2021
  • 3 replies
  • 862 views

I have an image which I have sliced, 
Is there a method to import the slices back into photoshop and in their correct positions and ideally into individual layers.

Many thanks 

This topic has been closed for replies.

3 replies

Stephen Marsh
Community Expert
Community Expert
July 2, 2022

I just stumbled over this old topic while looking for a related thread, anyway here is one way to do so:

 

https://www.andrewnoske.com/wiki/Adobe_Photoshop_-_Scripts_Related_to_Montaging

 

Ranjisha Sengupta
Legend
December 8, 2021

Hi there,

Thanks for reaching out. 

Would you mind sharing a few details, how did you create these slices?
Where and in what format are these saved? Are they arranged in a systematic order?
Are you looking to import all the pieces in a single PSD file to get the complete image?

We're here to help, just need more info.

Thanks,
Ranjisha

colnagoAuthor
Participant
December 8, 2021

Hi Ranjshe

I have the original image still so can start with a different approach of required.

I set up my guide, sliced to guides and exported in legacy as jpgs.

If I reimport as layers they all come back as layers but all in the same space, so basically I have a stack of layers ontop of each other. Resizing the canvas and moving each layer would be a nightmare as there would be a lot of slices to line up.

I am doing this as an art project and wish to edit certain slices, then finally export all as one image with edited tiles.
An alternative method I was seeking was to slice the image up and have it in layers without the need to export/import but as yet drawn a blank on that one. 

JJMack
Community Expert
Community Expert
December 8, 2021

Then use a script to cut up your images onto layer,  You can use menu View>New Guide Layout. To lay out a grid of guide lines then use a script to dice up your Image onto layers.  You will have you Originale uncut Image layer and your image diced up in layers above your image.

 

// split Image to layer according to guides;
// 2015, use it at your own risk;
#target photoshop

if (app.documents.length > 0) {
	var myDocument = app.activeDocument;
	var myResolution = myDocument.resolution;
	var theLayer = myDocument.activeLayer;
	var layerID = getLayerId(theLayer);
	var originalRulerUnits = app.preferences.rulerUnits;
	app.preferences.rulerUnits = Units.POINTS;
	// check guides;
	var theVer = new Array;
	var theHor = new Array;
	var theNumber = myDocument.guides.length;
	for (var m = 0; m < theNumber; m++) {
		if (myDocument.guides[m].direction == Direction.HORIZONTAL) {theHor.push(myDocument.guides[m].coordinate)};
		if (myDocument.guides[m].direction == Direction.VERTICAL) {theVer.push(myDocument.guides[m].coordinate)};
	};
	// sort and add beginning and end;
	theHor = treatGuideArray (theHor, app.activeDocument.height);
	theVer = treatGuideArray (theVer, app.activeDocument.width);
	$.writeln(theHor.join("\n")+"\n\n\n"+theVer.join("\n"));
	// create selections;
	for (var y = 0; y < theHor.length - 1; y++) {
		var Y1 = theHor[y];
		var Y2 = theHor[y+1];
		for (var x = 0; x < theVer.length - 1; x++) {
			try {
				var X1 = theVer[x];
				var X2 = theVer[x+1];
				rectangularSelection([Y1, X1, Y2, X2], false);
				// layer via copy;
				var id14 = charIDToTypeID( "CpTL" );
				executeAction( id14, undefined, DialogModes.NO );
				// add mask;
				intersectedLayerMask (layerID)
			} catch (e) {};
		// reselct layer;
		myDocument.activeLayer = theLayer;
		};
	};
	activeDocument.selection.deselect();
	// reset the ruler units;
	app.preferences.rulerUnits = originalRulerUnits
};
////////////////// the functions //////////////////
////// treat array //////
function treatGuideArray (theArray, theExtreme) {
	theArray.sort(function(a,b){return a - b});
	if (Number (theArray[theArray.length - 1]) != theExtreme) {theArray.push(theExtreme)};
	if (Number (theArray[0]) != 0) {theArray.unshift(new UnitValue(0, "pt"))};
	theArray.sort(function(a,b){return a - b});
	return theArray;
};
////// rectangular selection //////
function rectangularSelection (theBounds, add) {
	// =======================================================
	if (add == false ||  add == undefined) {var idsetd = charIDToTypeID( "setd" )}
	else {var idsetd = charIDToTypeID( "AddT" )};
		var desc55 = new ActionDescriptor();
		var idnull = charIDToTypeID( "null" );
			var ref11 = new ActionReference();
			var idChnl = charIDToTypeID( "Chnl" );
			var idfsel = charIDToTypeID( "fsel" );
			ref11.putProperty( idChnl, idfsel );
		desc55.putReference( idnull, ref11 );
		var idT = charIDToTypeID( "T   " );
			var desc56 = new ActionDescriptor();
			var idTop = charIDToTypeID( "Top " );
			var idRlt = charIDToTypeID( "#Rlt" );
			desc56.putUnitDouble( idTop, idRlt, theBounds[0] );
			var idLeft = charIDToTypeID( "Left" );
			var idRlt = charIDToTypeID( "#Rlt" );
			desc56.putUnitDouble( idLeft, idRlt, theBounds[1] );
			var idBtom = charIDToTypeID( "Btom" );
			var idRlt = charIDToTypeID( "#Rlt" );
			desc56.putUnitDouble( idBtom, idRlt, theBounds[2] );
			var idRght = charIDToTypeID( "Rght" );
			var idRlt = charIDToTypeID( "#Rlt" );
			desc56.putUnitDouble( idRght, idRlt, theBounds[3] );
		var idRctn = charIDToTypeID( "Rctn" );
		desc55.putObject( idT, idRctn, desc56 );
	executeAction( idsetd, desc55, DialogModes.NO );
};
// by mike hale, via paul riggott;
function getLayerId(theLayer){
	// http://forums.adobe.com/message/1944754#1944754
	app.activeDocument.activeLayer = theLayer;
	//Assumes activeDocument and activeLayer
		var ref = new ActionReference();
		ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
		d = executeActionGet(ref);
	return d.getInteger(charIDToTypeID('LyrI'));
};
////// load transparency, ontersect with layer mask ofd another layer, add layer mask //////
function intersectedLayerMask (layerID) {
	var idChnl = charIDToTypeID( "Chnl" );
	// =======================================================
	var idsetd = charIDToTypeID( "setd" );
		var desc2 = new ActionDescriptor();
		var idnull = charIDToTypeID( "null" );
			var ref1 = new ActionReference();
			var idfsel = charIDToTypeID( "fsel" );
			ref1.putProperty( idChnl, idfsel );
		desc2.putReference( idnull, ref1 );
		var idT = charIDToTypeID( "T   " );
			var ref2 = new ActionReference();
			var idTrsp = charIDToTypeID( "Trsp" );
			ref2.putEnumerated( idChnl, idChnl, idTrsp );
		desc2.putReference( idT, ref2 );
	executeAction( idsetd, desc2, DialogModes.NO );
	// =======================================================
	var idIntr = charIDToTypeID( "Intr" );
		var desc3 = new ActionDescriptor();
		var idnull = charIDToTypeID( "null" );
			var ref3 = new ActionReference();
			var idMsk = charIDToTypeID( "Msk " );
			ref3.putEnumerated( idChnl, idChnl, idMsk );
			var idLyr = charIDToTypeID( "Lyr " );
			ref3.putIdentifier( idLyr, layerID );
		desc3.putReference( idnull, ref3 );
		var idWith = charIDToTypeID( "With" );
			var ref4 = new ActionReference();
			var idfsel = charIDToTypeID( "fsel" );
			ref4.putProperty( idChnl, idfsel );
		desc3.putReference( idWith, ref4 );
	executeAction( idIntr, desc3, DialogModes.NO );
	// =======================================================
	var idMk = charIDToTypeID( "Mk  " );
		var desc4 = new ActionDescriptor();
		var idNw = charIDToTypeID( "Nw  " );
		desc4.putClass( idNw, idChnl );
		var idAt = charIDToTypeID( "At  " );
			var ref5 = new ActionReference();
			var idMsk = charIDToTypeID( "Msk " );
			ref5.putEnumerated( idChnl, idChnl, idMsk );
		desc4.putReference( idAt, ref5 );
		var idUsng = charIDToTypeID( "Usng" );
		var idUsrM = charIDToTypeID( "UsrM" );
		var idRvlS = charIDToTypeID( "RvlS" );
		desc4.putEnumerated( idUsng, idUsrM, idRvlS );
	executeAction( idMk, desc4, DialogModes.NO );
};

 

JJMack
Joely10623436
Community Expert
Community Expert
December 8, 2021

You can try this: File > Scripts > Load Files into Stack.

 

then adjust the Canvas Size to the original Image size. Then Place the single slices.

 

Hope, this helps.