dithord

Crates.iodithord
lib.rsdithord
version0.4.1
sourcesrc
created_at2024-01-05 09:37:22.977346
updated_at2024-04-02 04:26:36.615795
descriptionProvides capabilities for monochromatic Bayer ordered dithering on images.
homepage
repositoryhttps://github.com/exvacuum/dithord
max_upload_size
id1089528
size43,551
Silas Bartha (exvacuum)

documentation

README

dithord: Bayer ordered dithering crate

Crates.io Version

This crate provides functionality which allows for monochromatic ordered dithering using a Bayer threshold matrix. This method of dithering is less accurate than others but is fast and visually appealing.

Example of level 2 dithering using this crate:

image image

Currently only monochromatic dithering is supported, but support for arbitrary palettes could be considered as a feature.

Add to Project

cargo add dithord

Usage

This crate provides the OrderedDither trait which is implemented for image::DynamicImage, along with a ThresholdMap struct for generating and storing the Bayer matrix.

Example

use dithord::{ThresholdMap, OrderedDither};
use image::{io::Reader};

fn main() {
    let mut image = Reader::open("example.png").unwrap().decode().unwrap();

    // Generate level 2 (8x8) threshold map
    let map = threshold_map::ThresholdMap::level(2);
    // Apply dither
    image = image.ordered_dither(map);
}

Using standalone

This crate provides a standalone binary for dithering images from the command line. It can be installed using cargo:

cargo install dithord --features=cli

The binary can then be used to dither images from the command line:

dithord input.png output.exr --level 2
Commit count: 17

cargo fmt