Newer
Older
Crunch is an [open source](https://lab.lcr.gr/microhacks/crunch), GPL-3.0 licensed command line tool written in Rust for manipulating assets,
designed to complement a game development asset pipeline. Commands can either be executed directly, or can
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
## Quick Installation
If you're using Linux or Windows, you can download the pre-built binaries, copy them to your path and get going:
- [Latest version for Windows](https://lab.lcr.gr/microhacks/crunch/-/jobs/artifacts/trunk/raw/target/x86_64-pc-windows-gnu/crunch.exe?job=build-windows)
- [Latest version for Linux](https://lab.lcr.gr/microhacks/crunch/-/jobs/artifacts/trunk/raw/target/release/crunch?job=build-linux)
Check the [installation](getting_started/installation.md) page for more ways of sourcing your version of Crunch, including
installing from source on other platforms.
## Basic Usage
After you've installed the binary, you can use the `crunch` command to start manipulating assets. Check out the
help for a given command with `crunch <command> --help`, or by checking the link in the sidebar that correlates to the
command you want to run.
```text
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
```
### Updating from 0.4 to 0.5
`0.5.0` contains a breaking change to the argument order for commands. From `0.5` onwards, the command being
executed is now specified **before** the input and output file paths. This is because some commands don't use
both an input and an output, causing version `0.4` and lower to require a dummy value in those locations.
For Example:
- **0.4**: `crunch ./myimage.png ./myimage-flipped.png flip -d both`
- **0.5**: `crunch flip -d both ./myimage.png ./myimage-flipped.png`