1
2
3
4
5
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! Fast library for conversion of RGBA images to 8-bit paletted images.
//!
//! ### Quantizing an image
//!
//! ```
//! let (bytes, width, height) = load_image();
//!
//! let image = quantizr::Image::new(bytes, width, height)?;
//!
//! let mut opts = quantizr::Options::default();
//! opts.set_max_colors(256)?;
//!
//! let mut result = quantizr::QuantizeResult::quantize(&image, &opts);
//! result.set_dithering_level(1.0)?;
//!
//! let mut indexes = vec![0u8; width * height];
//! result.remap_image(&image, indexes.as_mut_slice())?;
//!
//! let palette = result.get_palette();
//!
//! save_image(palette, indexes, width, height);
//! ```
//!
//! See `example/` directory for complete example code.
//!
//! ### Quantizing multiple image into a single palette
//!
//! ```
//! let mut hist = quantizr::Histogram::new();
//!
//! let (bytes1, width1, height1) = load_image1();
//! let image1 = quantizr::Image::new(bytes1, width1, height1)?;
//! hist.add_image(&image1);
//!
//! let (bytes2, width2, height2) = load_image2();
//! let image2 = quantizr::Image::new(bytes2, width2, height2)?;
//! hist.add_image(&image2);
//!
//! let mut opts = quantizr::Options::default();
//! opts.set_max_colors(256)?;
//!
//! let mut result = quantizr::QuantizeResult::quantize_histogram(&hist, &opts);
//! result.set_dithering_level(1.0)?;
//!
//! let mut indexes1 = vec![0u8; width * height];
//! result.remap_image(&image1, indexes1.as_mut_slice())?;
//!
//! let mut indexes2 = vec![0u8; width * height];
//! result.remap_image(&image2, indexes2.as_mut_slice())?;
//!
//! let palette = result.get_palette();
//!
//! save_image1(palette, indexes1, width1, height1);
//! save_image2(palette, indexes2, width2, height2);
//! ```
pub use Error;
pub use Histogram;
pub use Image;
pub use Options;
pub use Color;
pub use Palette;
pub use QuantizeResult;