
effectengine
An image editing toolset written in Rust.
Installation
macOS / Linux: Homebrew (recommended)
macOS / Linux: install script
|
Windows: Scoop
scoop bucket add louisescher https://github.com/louisescher/scoop-bucket
scoop install louisescher/effectengine
Any platform — Cargo
Binaries are available via this repo's GitHub Releases.
CLI usage
USAGE:
effectengine <EFFECT> <INPUT_PATH> <OUTPUT_PATH> [SUBCOMMAND]
ARGUMENTS:
<EFFECT> The effect to use.
<INPUT_PATH> The path to an input image that should be processed.
<OUTPUT_PATH> The path where the resulting image should be saved. Needs
to include the filename.
The entire CLI is self-documenting. You can pass -h or --help to any subcommand and get a full help text.
Effects
Below you'll find a list of all effects this toolset supports, alongside the command to use.
| Effect | Description | Subcommand |
|---|---|---|
bayer-2 |
Bayer dithering with a 2×2 diffusion matrix to convert images into high-contrast RGB-only pixels. | bayer-2 |
bayer-4 |
Bayer dithering with a 4×4 diffusion matrix for finer thresholding and smoother gradients than the 2×2 version. | bayer-4 |
bayer-8 |
Bayer dithering with an 8×8 diffusion matrix, offering even finer dithering and richer gradients. | bayer-8 |
bayer-16 |
Bayer dithering using a 16×16 matrix for the most detailed and subtle dithering patterns. | bayer-16 |
floyd-steinberg |
Floyd-Steinberg error-diffusion dithering that approximates the image using only dark and light pixels, with optional custom colors. | floyd-steinberg |
pixelate |
Pixelates the image by grouping pixels into larger blocks and using each block's average color. | pixelate |
quantize |
Quantizes colors to a provided palette (from a path or hex codes), replacing each pixel with the nearest palette color. | quantize |
pixel-sort |
Sorts pixels above the average brightness in horizontal, vertical, or both directions to create a tear-like distortion. | pixel-sort |
kuwahara |
Applies the Kuwahara filter to reduce noise and produce a painterly, brush-stroke look via quadrant variance analysis. | kuwahara |
white-noise |
Overlays the image with adjustable white noise, blending random values at a given opacity. | white-noise |
scanline |
Produces a scanline effect reminiscent of CRT displays by dimming every other row. | scanline |
bloom |
Blurs the image with a gaussian kernel and additively blends it back to create a bloom/glow effect, with configurable sigma. | bloom |
chromatic-aberration |
Simulates lens chromatic fringing by offsetting the RGB channels radially, with adjustable strength. | chromatic-aberration |