Texture atlases for SpriteKit with TexturePacker

TexturePacker: 20 seconds to your optimized sprite sheet for SpriteKit

Detect errors at compile time

TexturePacker creates a header file for you together with your atlas. You can simply import it using:

#import "sprites.h"

Using the defines in the header file, creating a sprite is a 1-liner:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithTexture:SPRITES_TEX_BACKGROUND];

This makes it extremely simple to animate sprites. Play your animation with:

SKAction *walk = [SKAction animateWithTextures:SPRITES_ANIM_CAPGUY_WALK timePerFrame:0.033];
[sprite runAction:walk];

With this you find missing sprites at compile time - not at runtime when your game is already in the AppStore.

  • Check for missing sprites at compile time
  • Increase code quality
  • Easily handle animations
SpriteKit animation phases

Automatically downscale sprites for all devices

TexturePacker: automated scaling for all devices

Focus on high resolution sprites only while creating your app for iPad, iPhone and iPad Mini. TexturePacker does all the scaling for you. No need to use an external tool to resize the images.

Using pre-scaled sprites keeps the frame rate high and reduces runtime memory consumption.

  • Reduce memory consumption
  • Increase performance
  • No additional work required


Instead of adding and removing individual sprites TexturePacker allows you to simply add a complete asset folder. Every image that is found inside it will be added to the sprite sheet.

TexturePacker preserves your folder structure in the sprite names inside the data file allowing you to easily group your sprites.

TexturePacker detects all changes and automatically reads the new sprite data when re-entering the application or publishing from command line.

With the powerful command line interface you can simply update all sprite sheets at once.

TexturePacker for Designers

You don't have to be a developer to use TexturePacker. It's easy right from the start.

Common questions for artists are:

Do all sprites fit into a single atlas?

Simply add your sprite folders and see if they all fit. TexturePacker shows you the sprite atlas in real-time.
Maybe you need to drop some frames?
Or is there enough space left to make the animation even smoother?

Tired of exporting .png files?

No need to use Save for web and devices anymore.

TexturePacker can directly import the following file formats:

  • PSD - Photoshop image
  • SWF - Flash animations - including frame labels
  • PNG - Portable network graphics
  • TGA - Targa Image File
  • JPG - Joint Photographic Experts Group
  • TIFF - Tagged image file format
  • BMP - Bitmap

Trimming / Cropping save space by removing transparency

TexturePacker Trim Crop: remove transparency and minimize texture size

Trimming removes transparent pixels from the border of your sprites. This has two advantages:

  • Reduces texture size
  • Faster rendering

Trimming preserves the sprite's size - the framework needs special support to restore the transparent parts when rendering the sprite.

Cropping in contrast removes the transparent parts - making the sprite appear as if it never had any transparent border.

Alias creation

If two images are identical after trimming only one image is placed in the sprite sheet. The duplicates will just be added to the description file allowing you to access it with both names.

TexturePacker: Auto alias - detect duplicates

This is perfect when using animations: You simply don't have to care about equal phases.

Create heuristic mask

Create heuristic mask creates transparency from images which come with a single key color.

TexturePacker: Heuristic Mask creates transparency