Skip to content

A library to analyze spritesheets and detect sprite dimensions and frame count

Notifications You must be signed in to change notification settings

mirsella/spritesheet_detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spritesheet Detector

spritesheet_detector is a Rust library that analyzes a spritesheet image and detects its grid layout and non-empty frame count. It can handle spritesheets with margin/padding (based on the color at the top-left pixel) and works even if the last row of frames is incomplete.

Features

  • Detects sprite frame dimensions.
  • Determines the number of columns and rows in the spritesheet.
  • Counts only the valid frames (ignoring cells that are completely the margin color).
  • Supports a shortcut for square frames when the image width is evenly divisible by its height.

it was made for this type of spritesheet: example spritesheet

Usage

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
    );

}

About

A library to analyze spritesheets and detect sprite dimensions and frame count

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages