Struct plot_interface::dependency::image::imageops::BiLevel
[−]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
impl ColorMap for BiLevel
impl ColorMap for BiLevel
fn has_lookup(&self) -> bool
fn has_lookup(&self) -> bool
Indicate NeuQuant implements lookup
.
fn index_of(&self, color: &Luma<u8>) -> usize
fn index_of(&self, color: &Luma<u8>) -> usize
Returns the index of the closest match of color
in the color map. Read more
impl Copy for BiLevel
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<Target, Original> VectorizedInto<Target> for Original where
Target: VectorizedFrom<Original>,
impl<Target, Original> VectorizedInto<Target> for Original where
Target: VectorizedFrom<Original>,
sourcefn vectorized_into(self) -> Target
fn vectorized_into(self) -> Target
Performs the conversion.