Struct image::imageops::colorops::BiLevel [−][src]
pub struct BiLevel;
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 Send for BiLevel
impl Sync for BiLevel
impl Unpin for BiLevel
impl UnwindSafe for BiLevel
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> Pointable for T
[src][+]
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,