CrImage::Util::SpriteGenerator
Generate sprite sheets from multiple images.
Provides tools for combining multiple images into optimized sprite sheets. Useful for:
- Game development (texture atlases)
- Web optimization (CSS sprites)
- Animation frames
- Icon sets
Class methods
generate(images : Array(Image), layout : SpriteLayout = SpriteLayout::Horizontal, spacing : Int32 = 0, background : Color::Color = Color::TRANSPARENT) : SpriteSheet
Generates a sprite sheet from multiple images.
Combines images into a single sheet using the specified layout algorithm. Returns both the combined image and metadata for extracting individual sprites.
Parameters:
images: Array of images to combine (must not be empty)layout: Layout strategy (default: Horizontal)spacing: Pixels between sprites (default: 0)background: Background color (default: transparent)
Returns: SpriteSheet with combined image and sprite metadata
Raises: ArgumentError if images array is empty or spacing is negative
Example:
images = [img1, img2, img3]
sheet = CrImage::Util::SpriteGenerator.generate(images)
CrImage::PNG.write("sprites.png", sheet.image)
sheet.sprites.each { |s| puts "Sprite #{s.index}: (#{s.x}, #{s.y})" }