| Crates.io | spritesheet_detector |
| lib.rs | spritesheet_detector |
| version | 0.3.0 |
| created_at | 2025-03-12 22:11:36.986155+00 |
| updated_at | 2026-01-14 22:31:10.956764+00 |
| description | A library to analyze spritesheets and detect sprite dimensions and frame count. |
| homepage | |
| repository | https://github.com/mirsella/spritesheet_detector |
| max_upload_size | |
| id | 1590277 |
| size | 3,832,064 |
spritesheet_detector is a robust Rust library designed to automatically detect the grid structure (rows, columns, and frame count) of spritesheet images using signal processing techniques.
rayon.use image::open;
use spritesheet_detector::{analyze_spritesheet, SpritesheetInfo};
fn main() {
// Open your spritesheet image.
let img = open("path/to/spritesheet.png").expect("Failed to open image");
// Analyze the spritesheet.
let info: SpritesheetInfo = analyze_spritesheet(&img);
// Print the detected information.
println!(
"Sprite frame: {}x{} with {} columns and {} rows, {} valid frames.",
info.sprite_width, info.sprite_height, info.columns, info.rows, info.frame_count
);
}
You can also use the included binary to inspect assets:
cargo run --release -- path/to/spritesheet.png
Unlike simple pixel-searching algorithms, spritesheet_detector treats the image as a series of signals. It projects the alpha and luminance data onto 1D axes and analyzes the periodicity of these signals. This allows it to work reliably on complex assets where sprites might be touching or have varyingly transparent backgrounds.