How azarrias/sprite-sheet-splitter works
Sprite Sheet Splitter is a desktop tool for loading PNG/TGA sprite sheets, previewing configurable slices, selecting frames into an ordered animation, and previewing playback. The runtime flow begins at the module entry point, loads an image through the GUI shell, and uses the session model and Pillow imaging for slice and animation views. The README documents editing, zoom, chooser behavior, and safety limits; unsampled GUI callbacks and dialog details are represented only where the excerpts or README support them.
Main entry points: app.py GUI Shell · model.py Editing Session · imaging.py Sheet Renderer · __main__.py Module Entry
Components 14
Desktop UI
- Module Entry
src/sprite_sheet_splitter/__main__.py - GUI Shell
src/sprite_sheet_splitter/app.py - Image Chooser
src/sprite_sheet_splitter/app.py
Sprite Workflow
- Loaded Image
src/sprite_sheet_splitter/imaging.py - Editing Session
src/sprite_sheet_splitter/model.py - Slice Geometry
src/sprite_sheet_splitter/model.py - Frame Selection
src/sprite_sheet_splitter/model.py - Animation Timing
src/sprite_sheet_splitter/model.py
Image Rendering
- Sheet Renderer
src/sprite_sheet_splitter/imaging.py - Region Sampling
src/sprite_sheet_splitter/imaging.py - Animation Renderer
src/sprite_sheet_splitter/imaging.py - Display Scaling
src/sprite_sheet_splitter/imaging.py
Other components
- User
- Dear ImGui / Dialogs
Connections 19
- User → Module Entry: launches
README.md - Module Entry → GUI Shell: runs
src/sprite_sheet_splitter/__main__.py - GUI Shell → Image Chooser: requests image
README.md - Image Chooser → Dear ImGui / Dialogs: opens dialog
src/sprite_sheet_splitter/app.py - GUI Shell → Loaded Image: loads image
src/sprite_sheet_splitter/app.py - GUI Shell → Editing Session: updates
src/sprite_sheet_splitter/app.py - Editing Session → Slice Geometry: generates regions
src/sprite_sheet_splitter/model.py - GUI Shell → Frame Selection: records clicks
src/sprite_sheet_splitter/app.py - Editing Session → Frame Selection: tests hits
src/sprite_sheet_splitter/model.py - Frame Selection → Animation Timing: resets playback
src/sprite_sheet_splitter/model.py - GUI Shell → Sheet Renderer: renders sheet
src/sprite_sheet_splitter/app.py - Sheet Renderer → Region Sampling: samples regions
src/sprite_sheet_splitter/imaging.py - GUI Shell → Animation Renderer: renders preview
src/sprite_sheet_splitter/app.py - Animation Renderer → Region Sampling: samples frame
src/sprite_sheet_splitter/imaging.py - GUI Shell → Display Scaling: scales image
src/sprite_sheet_splitter/app.py - Sheet Renderer → Editing Session: reads layout
src/sprite_sheet_splitter/imaging.py - Animation Renderer → Editing Session: reads playback
src/sprite_sheet_splitter/imaging.py - GUI Shell → Dear ImGui / Dialogs: draws interface
src/sprite_sheet_splitter/app.py - Animation Timing → Editing Session: advances frames
src/sprite_sheet_splitter/model.py