#sprite-sheet #sprite #packer #gamedev #command-line-tool

app gattai

Combine multiple images into a single sprite sheet

1 unstable release

0.1.0 Jun 30, 2024

#218 in Images

MIT/Apache

23KB
614 lines

Gattai

CLI tool to combine multiple images into a single sprite sheet.

Installation

Gattai can be installed with cargo using:

cargo install --locked gattai

Usage

Gattai has a simple and easy-to-use CLI interface powered by clap.

gattai -o sprite-sheet.png images/**/*.png

This command will output two files:

  • sprite-sheet.png: the sprite sheet containing all images.
  • sprite-sheet.json: the positions and sizes of all used sprites.

CLI Options

Gattai provides several options to configure its output, such as:

  • -o, --output-file: configure the name and format of the sprite sheet.
  • -m, --output-mode: configure the format of the sprite data JSON file.
    • map: output sprite data as a JSON map:
    {
      "sprites": {
        "path/to/image1.png": {
          "x": 0,
          "y": 0,
          "w": 16,
          "h": 16
        },
        "path/to/image2.png": {
          "x": 16,
          "y": 16,
          "w": 16,
          "h": 16
        }
      }
    }
    
    • array: output sprite data as a JSON array:
    {
      "sprites": [
        {
          "path": "path/to/image1.png",
          "bounds": {
            "x": 0,
            "y": 0,
            "w": 16,
            "h": 16
          }
        },
        {
          "path": "path/to/image2.png",
          "bounds": {
            "x": 16,
            "y": 16,
            "w": 16,
            "h": 16
          }
        }
      ]
    }
    
  • -p, --padding: configure the padding between the sprites and the border of the image.
  • -s, --spacing: configure the spacing between the sprites.

Supported Image Formats

Gattai is able to use all image formats supported by image, the only restriction being that output formats must have an alpha channel.

License

Gattai is dual-licensed under either

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above without any additional terms or conditions.

Dependencies

~5.5MB
~105K SLoC