#image-processing #command-line #pipeline #assets #reproducible #setup #run-command

app crunch-cli

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

8 releases

0.8.2 Apr 28, 2024
0.8.1 Apr 28, 2024
0.8.0 Oct 22, 2023
0.7.1 Sep 22, 2023
0.5.1 Feb 22, 2023

#187 in Images

GPL-3.0 license

540KB
1.5K SLoC

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:
  atlas     Given a set of image files, create a single atlas image and metadata file containing all of the image data
  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
  extract   Extract individual, non-square sprites from a given spritesheet
  info      Extract Information About An Image into a JSON file
  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

Dependencies

~19MB
~331K SLoC