0% found this document useful (0 votes)
53 views4 pages

Readme PDF

Dither is a Rust CLI tool for image dithering. It can take an input image, apply a dithering algorithm to reduce the color depth, and output the result. It supports various dithering algorithms like Floyd, Steinberg, and Burkes. Images can be dithered to black and white, grayscale, or using different color palettes. The tool can be installed from source via Cargo or a binary, and also run directly in a Docker container.

Uploaded by

Efron Licht
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views4 pages

Readme PDF

Dither is a Rust CLI tool for image dithering. It can take an input image, apply a dithering algorithm to reduce the color depth, and output the result. It supports various dithering algorithms like Floyd, Steinberg, and Burkes. Images can be dithered to black and white, grayscale, or using different color palettes. The tool can be installed from source via Cargo or a binary, and also run directly in a Docker container.

Uploaded by

Efron Licht
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Dither 1.3.

7
Inspired by: http://www.tannerhelland.com/4660/dithering-eleven-algorithms-source-code/

crate
documentation
repository
binaries
dockerfile

License: MIT

The test photo ( "bunny.png" ) was obtained under the creative common license and is in the public domain.

Installation

Compilation from source

Install rust by following the instructions at rustup.rs/

Install dither

cargo install dither

Download a binary (x64-windows, x64-linux)

Download a binary from the binaries repository

Run directly via Docker

docker run efronlicht/dither:latest

CLI help:

dither --help

usage

dither INPUT [OUTPUT] [-v] [--dither="floyd"] [--color="bw"] [--depth="1"] [--help]

examples
# no-op

bunny

dither bunny.png burkes.png --dither=burkes

burkes

dither bunny.png crayon.png --color=crayon

crayon

Args
INPUT

the path to an input image.known good image formats are .png and .jpg .

OUTPUT

the path to write the output.this will create or truncate the file at the existing location, if necessary.the image
type will be inferred from the filename.currently, only .png and .jpg are supported.

-c , --color

The color mode to use. Default is "bw" (black and white). Available options are

bw (default)
color
cga
crayon
$COLOR
$FILENAME

--color=bw (default)

grayscale mode.dither to --depth bits; --depth=1 uses pure black and white, --depth=2 uses black, white, and
two shades of gray, etc, etc.

color=color

use RGB channels with specified bit depth.i.e, --color=color, --depth=2 uses two bits each for the red,
green, and blue channels.
--color=crayon

use the crayon color palette.see "crayon.plt" for details.

--color=cga

use the cga color palette.see the wikipedia article or "cga.plt" for details.

--color=$COLOR

single-color mode.dither in black and white to the specified bit depth, then replace white with the given color,
using black for the background.

BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHT_GRAY
GRAY
LIGHT_BLUE
LIGHT_GREEN
LIGHT_CYAN
LIGHT_RED
LIGHT_MAGENTA
YELLOW
WHITE

--color=$FILENAME

load a palette from file.palettes are specified as a list of two or more newline-separated 24-bit hexidecimals,
with optional 0x prefix.see crayon.plt and cga.plt for examples.

// WHITE
0xffffff
// BLACK
0x000000
// RED
0xff0000
// GREEN
0x00ff00
// BLUE
0x0000ff

-d, --dither
The type of ditherer to use. Available options are

"floyd" , "steinberg" , "floydsteinberg" (default)


"atkinson" ,
"stucki" ,
"burkes" ,
"jarvis" , "judice" , ninke"
"sierra" , "sierra3"

See the documentation or Tanner Helland's article for technical details.

-v, --verbose

Verbose debug output to stderr.

--depth

The bit depth to compress each channel to. Should be an unsigned integer between 1 and 7 (default 1).
Mutally exclusive with the --color= $FILENAME , color==cga , and --color=crayon options.

You might also like