Advertisement
Guest User

layersToSprite.js

a guest
Jan 22nd, 2018
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Put this file in Program Files\Adobe\Photoshop\Presets\Scripts\layersToSprite.js  
  2. // Run in PhotoShop: File > Automate > Scripts: layersToSprite.js  
  3.  
  4. // Arrange layers into a sprite sheet.  
  5.  
  6. // Set up UI.
  7. var title = "Layers to Spritesheet";
  8.  
  9. var dlg = new Window('dialog', title, [100,100,320,155]);
  10. dlg.scTxt = dlg.add('statictext',[10,17,45,35],"Cells X");
  11. dlg.CellX = dlg.add('edittext',[55,15,77,35],'3');
  12. dlg.okayBtn = dlg.add('button', [155,17,215,35],'Okay', {name:'ok'});
  13. dlg.show();
  14.  
  15.     if (documents.length > 0)  
  16.     {  
  17.         var cols = parseInt(dlg.CellX.text);  
  18.          
  19.         // --------------------------  
  20.         docRef = activeDocument;    
  21.         var activeLayer = docRef.activeLayer;  
  22.  
  23.         numLayers = docRef.artLayers.length;      
  24.          
  25.         var rows = Math.ceil(numLayers/cols);  
  26.          
  27.          var spriteX = docRef.width;  
  28.          var spriteY = docRef.height;    
  29.          
  30.         // put things in order  
  31.         app.preferences.rulerUnits = Units.PIXELS;  
  32.          
  33.         // resize the canvas  
  34.          newX = spriteX * cols;  
  35.          newY = spriteY * rows;  
  36.          
  37.          docRef.resizeCanvas( newX, newY, AnchorPosition.TOPLEFT );  
  38.                
  39.         // move the layers around  
  40.          var rowi = 0;  
  41.          var coli = 0;  
  42.          
  43.          for (i=(numLayers - 1); i >= 0; i--)  
  44.          {      
  45.              docRef.artLayers[i].visible = 1;  
  46.              
  47.               var movX = spriteX*coli;  
  48.               var movY = spriteY*rowi;  
  49.                
  50.              docRef.artLayers[i].translate(movX, movY);  
  51.              
  52.              coli++;  
  53.              if (coli > (cols - 1))  
  54.              {  
  55.                  rowi++;  
  56.                  coli = 0;  
  57.              }  
  58.          }  
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement