Skip to content

Instantly share code, notes, and snippets.

@billpull
Forked from jessefreeman/layers_to_sprite_sheet.js
Last active August 29, 2015 14:02

Revisions

  1. billpull revised this gist Jun 5, 2014. 1 changed file with 6 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions Layer to Sprite.jsx
    Original file line number Diff line number Diff line change
    @@ -9,6 +9,7 @@ if (documents.length > 0)
    // --------------------------
    docRef = activeDocument;
    var activeLayer = docRef.activeLayer;
    var padding = 20;

    numLayers = docRef.artLayers.length;

    @@ -18,12 +19,13 @@ if (documents.length > 0)
    app.preferences.rulerUnits = Units.PIXELS;

    // resize the canvas
    newY = numLayers * spriteY;
    newY = numLayers * spriteY + padding * 2;
    newX = docRef.width + padding;

    docRef.resizeCanvas( docRef.width, newY, AnchorPosition.TOPLEFT );
    docRef.resizeCanvas( newX, newY, AnchorPosition.TOPLEFT );

    // move the layers around
    for (i=0; i < numLayers - 1; i++)
    for (i=0; i < numLayers; i++)
    {
    docRef.artLayers[i].visible = 1;

    @@ -32,4 +34,4 @@ if (documents.length > 0)
    docRef.artLayers[i].translate(0, movY);

    }
    }
    }
  2. billpull renamed this gist Jun 4, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. billpull revised this gist Jun 4, 2014. 1 changed file with 8 additions and 9 deletions.
    17 changes: 8 additions & 9 deletions layers_to_sprite_sheet.js
    Original file line number Diff line number Diff line change
    @@ -10,27 +10,26 @@ if (documents.length > 0)
    docRef = activeDocument;
    var activeLayer = docRef.activeLayer;

    numLayers = docRef.artLayers.length;
    var cols = docRef.width;
    numLayers = docRef.artLayers.length;

    var spriteX = docRef.width;
    var spriteY = docRef.height;

    // put things in order
    app.preferences.rulerUnits = Units.PIXELS;

    // resize the canvas
    newX = numLayers * spriteX;
    newY = numLayers * spriteY;

    docRef.resizeCanvas( newX, docRef.height, AnchorPosition.TOPLEFT );
    docRef.resizeCanvas( docRef.width, newY, AnchorPosition.TOPLEFT );

    // move the layers around
    for (i=0; i < numLayers; i++)
    for (i=0; i < numLayers - 1; i++)
    {
    docRef.artLayers[i].visible = 1;

    var movX = spriteX*i;
    var movY = spriteY*i;

    docRef.artLayers[i].translate(movX, 0);
    docRef.artLayers[i].translate(0, movY);

    }
    }
    }
  4. @jessefreeman jessefreeman created this gist Mar 15, 2011.
    36 changes: 36 additions & 0 deletions layers_to_sprite_sheet.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    // Put this file in Program Files\Adobe\Photoshop\Presets\Scripts\
    // In PhotoShop menu File > Automate > Scripts: layersToSprite.js

    // Arrange layers into a sprite sheet.

    if (documents.length > 0)
    {

    // --------------------------
    docRef = activeDocument;
    var activeLayer = docRef.activeLayer;

    numLayers = docRef.artLayers.length;
    var cols = docRef.width;

    var spriteX = docRef.width;

    // put things in order
    app.preferences.rulerUnits = Units.PIXELS;

    // resize the canvas
    newX = numLayers * spriteX;

    docRef.resizeCanvas( newX, docRef.height, AnchorPosition.TOPLEFT );

    // move the layers around
    for (i=0; i < numLayers; i++)
    {
    docRef.artLayers[i].visible = 1;

    var movX = spriteX*i;

    docRef.artLayers[i].translate(movX, 0);

    }
    }