Skip to content

Small image utility featuring an implementation of the median-cut color quantization algorithm and Floyd-Steinberg dithering in C.

License

Notifications You must be signed in to change notification settings

ImageProcessing-ElectronicPublications/dither

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dither - Color Quantization and Dithering

This is a small program dedicated to reducing the number of colors in an image. It operates with files in PNG or binary PPM format (Portable PixMap), and features automatic palette generation (using a median-cut algorithm) and dithering implemented with the Floyd-Steinberg method.

Installing

On macOS with Homebrew

$ brew install tessarin/core/dither

Manual Installation

First, install libpng. Running make will then compile the program and generate the documentation (requires Perl). To install, move the executable and manual files to appropriate directories in your system.

$ make
$ mv dither ~/bin
$ mv dither.1 ~/man/man1

Individual targets can also be specified to only compile the program or to generate the manual page:

$ make dither
$ make doc

Usage

$ dither [-p name.size] [-dv] input output

Detailed information about the program options are included in the manual.

Features

By default, dither will use a 3-bit RGB palette and dithering when processing an image. Other possible palettes include:

  • Grayscale of any given size
  • Automatic, generated with the given size using a median-cut quantization algorithm
  • Custom palette

Dithering on the final image can be disabled and the program can also be used just to generate a palette.

Samples

Automatic Palette

$ dither -p auto.32 bird-original.png bird-auto.32.png

original bird generated bird

1-bit Black & White

$ dither -p bw flower-original.png flower-bw.png

original flower generated flower

50% Gray Test

Generates a perfect checkerboard pattern.

$ dither -p bw gray-original.png gray-dithered.png

original gray dithered gray

About

Small image utility featuring an implementation of the median-cut color quantization algorithm and Floyd-Steinberg dithering in C.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 97.0%
  • Makefile 3.0%