Skip to content
Snippets Groups Projects
Louis Capitanchik's avatar
Louis authored
728f2fe8

Crunch

Command line image manipulation, set up a pipeline once and run it against all of your assets

Usage

Crunch takes an image and applies a transformation to it. But what if you want to do two transformations? Or transform more than one image at a time?

Pipelines!

The main value of Crunch is reproducible image processing, as defined by a pipeline toml file.

Basic CLI usage:

USAGE:
    crunch [OPTIONS] <IN_PATH> <OUT_PATH> <SUBCOMMAND>

ARGS:
    <IN_PATH>     The path to the spritesheet file
    <OUT_PATH>    The path to the output file

OPTIONS:
    -f, --format <FORMAT>    Force Crunch to read the input file as a specific format [possible
                             values: png, jpg, gif, ico, tga, tiff, bmp]
    -h, --help               Print help information
    -V, --version            Print version information

SUBCOMMANDS:
    extrude     Take each tile in an image and expand its borders by a given amount
    flip        Flip an image along one or both axis
    help        Print this message or the help of the given subcommand(s)
    palette     Create a palette file containing every distinct colour from the input image
    pipeline    Execute a pipeline file to run multiple commands on one or more images
    remap       Convert the colour space of an input image to the given palette
    rotate      Apply a clockwise rotation to the image
    scale       Make an image larger or smaller

Downloads

Build From Source

You can simply download this repository and run cargo build --release to get a binary for your system. Using --release mode is required in all situations, as the time taken to run a command with the debug build is several orders of magnitude higher.

If you use the .local/bin pattern for non-sudo userspace programs, you can use the included build script to simplify things. Otherwise, follow the below instructions:

Simple Script

  • Clone this repository
  • Run sh source-install.sh

Manual

  • Clone this repository
  • Run cargo build --release
  • Optionally, strip the binary
  • Copy target/release/crunch to a folder located in your $PATH