Struct image::imageops::colorops::BiLevel [−][src]
pub struct BiLevel;
Expand description
A bi-level color map
Examples
use image::imageops::colorops::{index_colors, BiLevel, ColorMap};
use image::{ImageBuffer, Luma};
let (w, h) = (16, 16);
// Create an image with a smooth horizontal gradient from black (0) to white (255).
let gray = ImageBuffer::from_fn(w, h, |x, y| -> Luma<u8> { [(255 * x / w) as u8].into() });
// Mapping the gray image through the `BiLevel` filter should map gray pixels less than half
// intensity (127) to black (0), and anything greater to white (255).
let cmap = BiLevel;
let palletized = index_colors(&gray, &cmap);
let mapped = ImageBuffer::from_fn(w, h, |x, y| {
let p = palletized.get_pixel(x, y);
cmap.lookup(p.0[0] as usize)
.expect("indexed color out-of-range")
});
// Create an black and white image of expected output.
let bw = ImageBuffer::from_fn(w, h, |x, y| -> Luma<u8> {
if x <= (w / 2) {
[0].into()
} else {
[255].into()
}
});
assert_eq!(mapped, bw);
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for BiLevel
impl UnwindSafe for BiLevel
Blanket Implementations
Mutably borrows from an owned value. Read more