User Manual
Complete guide to Extract, Generate, Editor, and Optimizer tabs
Getting Started
- Launch TextureAtlas Toolbox.
- On first launch a setup wizard guides you through language, update preferences, and theme selection.
- Choose your workflow:
- Extract tab (default) — Convert existing atlases into animations (GIF/WebP/APNG) and individual frames.
- Generate tab — Build new atlases from loose frame images.
- Editor tab — Manually align sprites and apply offset fixes.
- Configure your settings and enjoy!
First Launch Wizard
The first time you open the app (or after a major upgrade) a three-step wizard appears:
- Language — Choose your UI language. A quality indicator shows whether the translation is native, reviewed, or machine-generated.
- What's New — Overview of the latest changes and an option to enable automatic update checks.
- Theme — Pick a theme family, light/dark/AMOLED variant, and accent colour. A live preview panel shows sample widgets that update in real-time as you change options.
Fresh installs default to the Clean family with Light or Dark automatically detected from your operating system colour scheme.
Themes and Appearance
TextureAtlas Toolbox ships with five theme families, each available in Light, Dark, and AMOLED variants (15 combinations):
| Family | Description |
|---|---|
| Clean | Minimal, modern look with subtle borders |
| Material | Google Material Design via qt-material |
| Fluent | Windows 11 Fluent Design with rounded controls |
| Windows 95 | Retro pixel-art UI with MS Sans Serif font |
| Windows XP | Classic XP chrome with pixel-art icons |
You can also choose from eight accent colour presets (Default, Blue, Purple, Green, Red, Orange, Pink, Teal). All theme settings are available in Options → Theme and persist between sessions.
Extract Tab
The Extract tab handles batch processing of existing texture atlases into animations and frames.
Main Components
- Atlas List (left panel) — Shows all queued texture atlas files with context menus for file management.
- Animation List (second panel) — Displays animations detected in the selected texture atlas.
- Input/Output Directories — Select source folder and destination for exports.
- Animation Export Group — Configure animated output settings (GIF, WebP, APNG).
- Frame Export Group — Configure individual frame output settings.
Animation Export Settings
| Setting | Description | Range |
|---|---|---|
| Format | Output animation format | GIF, WebP, APNG |
| Frame rate | Playback speed in frames per second | 1–1000 FPS |
| Loop delay | Pause before animation restarts (ms) | 0–10000 ms |
| Min period | Forces animation to be at least this long | 0–10000 ms |
| Scale | Output scaling multiplier | 0.01–100.0× |
| Alpha threshold | Transparency cutoff for GIF format | 0–100 |
Frame Export Settings
| Setting | Description | Options |
|---|---|---|
| Format | Individual frame image format | AVIF, BMP, DDS, PNG, TGA, TIFF, WebP |
| Frame Selection | Which frames to export | All, No duplicates, First, Last, First & Last |
| Frame scale | Scale multiplier for frames | 0.01–100.0× |
| Compression Settings | Format-specific quality options | Opens settings dialog |
Additional Settings
| Setting | Description | Options |
|---|---|---|
| Cropping method | How to trim transparent borders | None, Animation based, Frame based |
| Resampling method | Interpolation algorithm for scaling | Nearest, Bilinear, Bicubic, Lanczos, Box, Hamming |
| Filename format | Output filename sanitization | Standardized, No spaces, No special characters |
| Prefix | Text prepended to output names | Any text |
| Suffix | Text appended to output names | Any text |
Control Buttons
- Start Process — Begin extraction with current settings.
- Reset — Clear all loaded files from the queue.
- Advanced Filename — Open find/replace rules for output naming.
- Override Settings — Per-texture atlas or per-animation overrides.
Generate Tab
The Generate tab creates new texture atlases from individual frame images or from existing texture atlases.
Main Components
- Animation Tree — Hierarchical view of animation groups and their frames. Supports drag-and-drop reordering.
- Frame Input Buttons — Add individual files, directories, or import from existing atlases.
- Packing Options — Algorithm selection, padding, power-of-two sizing.
- Output Settings — Metadata format and image compression.
Input Buttons
| Button | Action |
|---|---|
| Add Files | Select individual image files (PNG, BMP, DDS, JPEG, TGA, TIFF, WebP) |
| Add Directory | Import all images from a folder. Subfolders become separate animations |
| Add Animation | Create an empty animation group for manual frame assignment |
| Add Existing Atlas | Import frames from an existing atlas (image + XML/JSON/TXT data) |
| Clear Frames | Remove all loaded frames |
Packing Algorithms
| Algorithm | Description |
|---|---|
| Automatic (Best Fit) | Tries all algorithms and picks the most efficient result |
| MaxRects | Tracks free rectangles; handles varied sprite sizes well |
| Guillotine | Recursively splits space; efficient for uniformly-sized sprites |
| Skyline | Tracks top edge of placed sprites; fast for similar-height sprites |
| Shelf | Row-based packing; fastest but may waste vertical space |
It's recommended to use Automatic (Best Fit) for the algorithm and Auto (Best Result) for the heuristic; the app will test all combinations and pick the most efficient result for your specific atlas.
Atlas Options
| Option | Description |
|---|---|
| Atlas Size | Automatic, Manual, or Max Size (limit only) |
| Padding | Pixels between sprites (helps prevent texture bleeding) |
| Power of Two | Force dimensions like 512×512, 1024×1024 |
| Allow Rotation | Enable 90° rotation for tighter packing (format-dependent) |
| Allow Flip | Enable sprite flipping (only supported by Starling XML with HaxeFlixel) |
GPU Texture Compression
When a game-engine metadata format is selected, additional GPU compression controls appear:
| Option | Description |
|---|---|
| Texture Format | GPU compression algorithm (BC1, BC3, BC7, ETC1/2, ASTC, PVRTC) or None |
| Container | DDS (desktop/DirectX) or KTX2 (cross-platform/Vulkan) |
| Generate Mipmaps | Create a full mipmap chain for LOD rendering |
Note: When a GPU compression format is selected, atlas padding is automatically increased to at least the block size (typically 4 pixels) to prevent compression artifacts at block boundaries.
Editor Tab
The Editor tab provides an interactive alignment workspace for manual sprite adjustments.
Main Components
- Animation Tree — Lists loaded animations and their individual frames.
- Alignment Canvas — Interactive preview with zoom, pan, and drag support.
- Offset Controls — Manual X/Y offset entry with apply-all functionality.
- Canvas Size — Adjustable virtual canvas dimensions (multiples of 256).
- Ghost Overlay — Semi-transparent reference frame for alignment comparison.
Canvas Controls
| Control | Action |
|---|---|
| Left-click + drag on sprite | Move the sprite offset |
| Left-click + drag on background | Pan the viewport |
| Ctrl + scroll wheel | Zoom in/out |
| Arrow keys | Fine adjustment (1px steps) |
| Shift + Arrow keys | Faster adjustment (5px steps) |
Features
- Ghost Overlays — Show a semi-transparent reference frame for alignment.
- Snap to Grid — Enable snapping with configurable step size.
- Origin Mode — Choose between Center or Top-Left origin for offset calculations.
- Detachable Canvas — Pop out the canvas to a separate window for more space.
- Batch Offset Application — Apply the current offset to all frames in an animation.
- Save Overrides — Store alignment data for use in the Extract tab.
- Export Composite — Create combined animations from multiple sources.
Loading Texture Atlases
Image File Support
The application supports all common image formats:
- PNG (recommended for sprites with transparency)
- AVIF, BMP, DDS, JPEG/JPG, KTX2, TGA, TIFF, WebP
Metadata Formats
TextureAtlas Toolbox automatically detects and parses many texture atlas formats. For detailed technical specifications, see the Format Reference.
| Format | Extension | Description |
|---|---|---|
| Starling/Sparrow XML | .xml | Most common format used by texture packers |
| TexturePacker XML | .xml | TexturePacker generic XML variant |
| TexturePacker TXT | .txt | Simple text-based format |
| JSON Hash | .json | Sprites keyed by name |
| JSON Array | .json | Sprites in array order |
| Aseprite JSON | .json | Exported from Aseprite |
| Spine Atlas | .atlas | Spine animation format |
| libGDX Atlas | .atlas | libGDX game framework format |
| Phaser 3 JSON | .json | Phaser game framework format |
| CSS Spritesheet | .css | CSS background-position definitions |
| Plist (Cocos2d) | .plist | Apple property list format |
| UIKit Plist | .plist | iOS UIKit variant |
| Godot Atlas | .tpsheet, .tpset | Godot game engine format |
| Egret2D JSON | .json | Egret game engine format |
| Paper2D | .paper2dsprites | Unreal Engine Paper2D |
| Unity TexturePacker | .tpsheet | Unity-compatible format |
| Adobe Animate Spritemap | .json pair | Animation.json + spritemap.json pairs |
Metadata-Free Images
For texture atlases without metadata files, the application can extract sprites using:
- Color keying — Remove solid background colors automatically
- Grid-based slicing — Divide the image into equal-sized cells
Adobe Animate Spritemaps are significantly more memory-intensive than other formats. Expect higher RAM and CPU usage.
Loading Process
- Click Select input directory or drag files directly onto the texture atlas list.
- The application scans for matching metadata files automatically.
- Select a texture atlas from the left list to view its animations.
- Choose animations to export or select all.
Basic Animation Export
- Load your texture atlas(es) using Select input directory or drag-and-drop.
- Choose an output directory for the exported files.
- Select the texture atlas from the left panel.
- Review detected animations in the second panel.
- Configure export settings:
- Enable/disable Animation export and Frame export groups as needed.
- Set your desired format, frame rate, and scale.
- Click Start Process to begin.
Output Structure
output_directory/ ├── texture_atlas_name/ │ ├── animation_name.gif │ ├── animation_name_frames/ │ │ ├── frame_001.png │ │ ├── frame_002.png │ │ └── ... │ └── ...
Generating New Atlases
- Switch to the Generate tab.
- Add your frame images using one of the input methods:
- Add Files — Select individual images.
- Add Directory — Import entire folder (subfolders become separate animations).
- Add Existing Atlas — Import and re-pack an existing atlas.
- Organize frames in the animation tree (drag to reorder).
- Select a packing algorithm (or use Automatic).
- Configure atlas options:
- Padding: Space between frames (2px recommended to prevent bleeding).
- Power of Two: Enable for older GPU compatibility.
- Allow Rotation: Enable for tighter packing (format-dependent).
- Choose your output metadata format.
- Click Generate and specify the output location.
Rotation and Flip Support
| Feature | Supported Formats |
|---|---|
| 90° Rotation | Starling XML, JSON Hash/Array, Aseprite, TexturePacker XML, Spine, Phaser 3, Plist, Paper2D |
| Flip | Starling XML only (HaxeFlixel extension) |
| GPU Compression | JSON Hash/Array, Spine, Phaser 3, Plist, Godot, Egret2D, Paper2D, Unity |
Note: Flip support is non-standard. Only HaxeFlixel's Sparrow implementation reads flip attributes. Most engines ignore them.
Advanced Settings
Cropping Options
| Mode | Description |
|---|---|
| None | Keep original frame dimensions (no cropping) |
| Animation based | Uniform cropping across all frames in an animation |
| Frame based | Individual cropping per frame (smallest possible size) |
Resampling Methods
| Method | Best For | Speed |
|---|---|---|
| Nearest | Pixel art, retro graphics | Fastest |
| Bilinear | Fast smooth scaling | Fast |
| Bicubic | General purpose | Medium |
| Lanczos | High-quality photos | Slower |
| Box | Downscaling | Fast |
| Hamming | Smooth with less blur | Medium |
Filename Formatting
| Format | Description |
|---|---|
| Standardized | Default naming with spaces preserved |
| No spaces | Replace spaces with underscores |
| No special characters | Remove all non-alphanumeric characters |
Add custom Prefix and Suffix text to output names. Use the Advanced filename button for find/replace rules with regex support.
Override Settings
Apply custom settings to specific texture atlases or animations:
- Override texture atlas Settings — Right-click a texture atlas or use the button.
- Override Animation Settings — Right-click an animation for per-animation overrides.
Overrides persist across sessions and take precedence over global settings.
Output Formats
Animation Formats
| Format | Best For | Key Features | Limitations |
|---|---|---|---|
| GIF | Universal compatibility | 1-bit transparency, works everywhere | 256 colors max, no partial transparency |
| WebP | Modern web apps | 8-bit transparency, superior compression | Older software support |
| APNG | High-quality animations | 24-bit color, full alpha channel | Limited software support, larger files |
Frame Export Formats
| Format | Extension | Features |
|---|---|---|
| PNG | .png | Lossless, full transparency, recommended default |
| AVIF | .avif | Modern format, excellent compression |
| WebP | .webp | Good compression, wide support |
| BMP | .bmp | Uncompressed, legacy support |
| DDS | .dds | DirectX texture format, game engines |
| TGA | .tga | Truevision format, game development |
| TIFF | .tiff | Professional imaging, lossless |
Frame Selection Options
| Option | Exports |
|---|---|
| All | Every frame in the animation |
| No duplicates | Skip identical consecutive frames |
| First | Only the first frame |
| Last | Only the last frame |
| First, Last | First and last frames only |
Generated Atlas Metadata Formats
| Format | Extension | Use Case |
|---|---|---|
| Sparrow/Starling XML | .xml | Flash/AIR, HaxeFlixel, OpenFL |
| JSON Hash | .json | General purpose, easy parsing |
| JSON Array | .json | Ordered frame data |
| Aseprite JSON | .json | Aseprite compatibility |
| TexturePacker XML | .xml | TexturePacker compatibility |
| Spine Atlas | .atlas | Spine 2D animations |
| Phaser 3 JSON | .json | Phaser game framework |
| CSS Spritesheet | .css | Web development |
| Plain Text | .txt | Simple text format |
| Plist (Cocos2d) | .plist | Cocos2d game engine |
| UIKit Plist | .plist | iOS native development |
| Godot Atlas | .tpsheet | Godot game engine |
| libGDX Atlas | .atlas | libGDX game framework |
| Egret2D JSON | .json | Egret game engine |
| Paper2D | .paper2dsprites | Unreal Engine 4/5 |
| Unity TexturePacker | .tpsheet | Unity game engine |
Tips and Best Practices
File Organization
- Keep atlas and metadata together — Store the image and its metadata file in the same directory for automatic detection.
- Use consistent naming — The app matches files by base name (e.g.,
player.png+player.xml). - Organize by project — Create separate input folders for different projects or game states.
Performance
- Close other applications when processing Adobe Animate spritemaps (memory-intensive).
- Use fewer worker threads if you encounter memory issues on systems with limited RAM.
- SSD storage significantly speeds up batch processing.
Quality Tips
- Use Nearest resampling for pixel art to preserve sharp edges.
- Use Lanczos for photographic or anti-aliased content.
- Scale in the atlas generator rather than at runtime for better quality.
- Use 2px padding minimum to prevent texture bleeding; increase to 4px if applying filters.
- Power-of-two dimensions improve GPU performance on older hardware.
Common Issues
| Problem | Solution |
|---|---|
| Missing animations | Check that metadata file exists and matches image name |
| Blurry output | Use Nearest resampling for pixel art |
| Texture bleeding | Increase padding in generator settings |
| Out of memory | Process fewer files at once, close other apps |
| Wrong frame order | Rename source files with numeric suffixes (e.g., walk_001.png) |
More resources
- Supported Formats for complete input/output format lists
- GPU Texture Compression for BC, ETC, ASTC, and PVRTC details
- FAQ for troubleshooting
- Friday Night Funkin' Guide for FNF-specific workflows