CloverBootloader/CloverApp/Clover/ThemeManager/libimagequant/rust-api/examples/basic.rs

33 lines
1.0 KiB
Rust
Raw Normal View History

// Don't forget to add -L . (or whatever dir has .rlib) to rustc!
fn main() {
// Image loading/saving is outside scope of this library
let width = 10usize;
let height = 10usize;
let fakebitmap = vec![255u8; 4 * width * height];
// http://pngquant.org/lib/
// Configure the library
let mut liq = imagequant::new();
liq.set_speed(5);
liq.set_quality(70, 99);
// Describe the bitmap
let ref mut img = liq.new_image(&fakebitmap[..], width, height, 0.0).unwrap();
// The magic happens in quantize()
let mut res = match liq.quantize(img) {
Ok(res) => res,
Err(err) => panic!("Quantization failed, because: {:?}", err),
};
// Enable dithering for subsequent remappings
res.set_dithering_level(1.0);
// You can reuse the result to generate several images with the same palette
let (palette, pixels) = res.remapped(img).unwrap();
println!("Done! Got palette {:?} and {} pixels with {}% quality", palette, pixels.len(), res.quantization_quality());
}