Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Put this file in Program Files\Adobe\Photoshop\Presets\Scripts\layersToSprite.js
- // Run in PhotoShop: File > Automate > Scripts: layersToSprite.js
- // Arrange layers into a sprite sheet.
- // Set up UI.
- var title = "Layers to Spritesheet";
- var dlg = new Window('dialog', title, [100,100,320,155]);
- dlg.scTxt = dlg.add('statictext',[10,17,45,35],"Cells X");
- dlg.CellX = dlg.add('edittext',[55,15,77,35],'3');
- dlg.okayBtn = dlg.add('button', [155,17,215,35],'Okay', {name:'ok'});
- dlg.show();
- if (documents.length > 0)
- {
- var cols = parseInt(dlg.CellX.text);
- // --------------------------
- docRef = activeDocument;
- var activeLayer = docRef.activeLayer;
- numLayers = docRef.artLayers.length;
- var rows = Math.ceil(numLayers/cols);
- var spriteX = docRef.width;
- var spriteY = docRef.height;
- // put things in order
- app.preferences.rulerUnits = Units.PIXELS;
- // resize the canvas
- newX = spriteX * cols;
- newY = spriteY * rows;
- docRef.resizeCanvas( newX, newY, AnchorPosition.TOPLEFT );
- // move the layers around
- var rowi = 0;
- var coli = 0;
- for (i=(numLayers - 1); i >= 0; i--)
- {
- docRef.artLayers[i].visible = 1;
- var movX = spriteX*coli;
- var movY = spriteY*rowi;
- docRef.artLayers[i].translate(movX, movY);
- coli++;
- if (coli > (cols - 1))
- {
- rowi++;
- coli = 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement