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

Crunch

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

For more info, check out the docs

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:

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

Usage: crunch <COMMAND>

Commands:
  rotate    Rotate an image clockwise by the given degree
  extrude   Take each tile in an image and expand its borders by a given amount. Optionally fill with nearby pixels instead of empty space
  palette   Create a palette file containing every distinct colour from the input image
  scale     Resize an image by a scale factor
  flip      Flip an image along one or more axis
  remap     Convert the colour space of an image to that of a given palette file
  pipeline  Execute a predefined pipeline
  reduce    Limit the number of colours by quantity or threshold
  split     Take a spritesheet and split into individual sprites, skipping empty space
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

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