pub trait Pixel: Copy + Clone {
type Subpixel: Primitive;
Show 23 methods
fn channel_count() -> u8;
fn channels(&self) -> &[Self::Subpixel];
fn channels_mut(&mut self) -> &mut [Self::Subpixel];
fn color_model() -> &'static str;
fn color_type() -> ColorType;
fn channels4(
&self
) -> (Self::Subpixel, Self::Subpixel, Self::Subpixel, Self::Subpixel);
fn from_channels(
a: Self::Subpixel,
b: Self::Subpixel,
c: Self::Subpixel,
d: Self::Subpixel
) -> Self;
fn from_slice(slice: &[Self::Subpixel]) -> &Self;
fn from_slice_mut(slice: &mut [Self::Subpixel]) -> &mut Self;
fn to_rgb(&self) -> Rgb<Self::Subpixel>;
fn to_rgba(&self) -> Rgba<Self::Subpixel>;
fn to_luma(&self) -> Luma<Self::Subpixel>;
fn to_luma_alpha(&self) -> LumaA<Self::Subpixel>;
fn to_bgr(&self) -> Bgr<Self::Subpixel>;
fn to_bgra(&self) -> Bgra<Self::Subpixel>;
fn map<F>(&self, f: F) -> Self
where
F: FnMut(Self::Subpixel) -> Self::Subpixel;
fn apply<F>(&mut self, f: F)
where
F: FnMut(Self::Subpixel) -> Self::Subpixel;
fn map_with_alpha<F, G>(&self, f: F, g: G) -> Self
where
F: FnMut(Self::Subpixel) -> Self::Subpixel,
G: FnMut(Self::Subpixel) -> Self::Subpixel;
fn apply_with_alpha<F, G>(&mut self, f: F, g: G)
where
F: FnMut(Self::Subpixel) -> Self::Subpixel,
G: FnMut(Self::Subpixel) -> Self::Subpixel;
fn map2<F>(&self, other: &Self, f: F) -> Self
where
F: FnMut(Self::Subpixel, Self::Subpixel) -> Self::Subpixel;
fn apply2<F>(&mut self, other: &Self, f: F)
where
F: FnMut(Self::Subpixel, Self::Subpixel) -> Self::Subpixel;
fn invert(&mut self);
fn blend(&mut self, other: &Self);
}
Expand description
A generalized pixel.
A pixel object is usually not used standalone but as a view into an image buffer.
Required Associated Types
Required Methods
sourcefn channel_count() -> u8
fn channel_count() -> u8
Returns the number of channels of this pixel type.
sourcefn channels_mut(&mut self) -> &mut [Self::Subpixel]
fn channels_mut(&mut self) -> &mut [Self::Subpixel]
Returns the components as a mutable slice
sourcefn color_model() -> &'static str
fn color_model() -> &'static str
Returns a string that can help to interpret the meaning each channel See gimp babl.
sourcefn color_type() -> ColorType
fn color_type() -> ColorType
Returns the ColorType for this pixel format
sourcefn channels4(
&self
) -> (Self::Subpixel, Self::Subpixel, Self::Subpixel, Self::Subpixel)
fn channels4(
&self
) -> (Self::Subpixel, Self::Subpixel, Self::Subpixel, Self::Subpixel)
Returns the channels of this pixel as a 4 tuple. If the pixel has less than 4 channels the remainder is filled with the maximum value
TODO deprecate
sourcefn from_channels(
a: Self::Subpixel,
b: Self::Subpixel,
c: Self::Subpixel,
d: Self::Subpixel
) -> Self
fn from_channels(
a: Self::Subpixel,
b: Self::Subpixel,
c: Self::Subpixel,
d: Self::Subpixel
) -> Self
Construct a pixel from the 4 channels a, b, c and d. If the pixel does not contain 4 channels the extra are ignored.
TODO deprecate
sourcefn from_slice(slice: &[Self::Subpixel]) -> &Self
fn from_slice(slice: &[Self::Subpixel]) -> &Self
Returns a view into a slice.
Note: The slice length is not checked on creation. Thus the caller has to ensure that the slice is long enough to present panics if the pixel is used later on.
sourcefn from_slice_mut(slice: &mut [Self::Subpixel]) -> &mut Self
fn from_slice_mut(slice: &mut [Self::Subpixel]) -> &mut Self
Returns mutable view into a mutable slice.
Note: The slice length is not checked on creation. Thus the caller has to ensure that the slice is long enough to present panics if the pixel is used later on.
sourcefn to_luma_alpha(&self) -> LumaA<Self::Subpixel>
fn to_luma_alpha(&self) -> LumaA<Self::Subpixel>
Convert this pixel to luma with an alpha channel
sourcefn map<F>(&self, f: F) -> Selfwhere
F: FnMut(Self::Subpixel) -> Self::Subpixel,
fn map<F>(&self, f: F) -> Selfwhere
F: FnMut(Self::Subpixel) -> Self::Subpixel,
Apply the function f
to each channel of this pixel.
sourcefn apply<F>(&mut self, f: F)where
F: FnMut(Self::Subpixel) -> Self::Subpixel,
fn apply<F>(&mut self, f: F)where
F: FnMut(Self::Subpixel) -> Self::Subpixel,
Apply the function f
to each channel of this pixel.
sourcefn map_with_alpha<F, G>(&self, f: F, g: G) -> Selfwhere
F: FnMut(Self::Subpixel) -> Self::Subpixel,
G: FnMut(Self::Subpixel) -> Self::Subpixel,
fn map_with_alpha<F, G>(&self, f: F, g: G) -> Selfwhere
F: FnMut(Self::Subpixel) -> Self::Subpixel,
G: FnMut(Self::Subpixel) -> Self::Subpixel,
Apply the function f
to each channel except the alpha channel.
Apply the function g
to the alpha channel.
sourcefn apply_with_alpha<F, G>(&mut self, f: F, g: G)where
F: FnMut(Self::Subpixel) -> Self::Subpixel,
G: FnMut(Self::Subpixel) -> Self::Subpixel,
fn apply_with_alpha<F, G>(&mut self, f: F, g: G)where
F: FnMut(Self::Subpixel) -> Self::Subpixel,
G: FnMut(Self::Subpixel) -> Self::Subpixel,
Apply the function f
to each channel except the alpha channel.
Apply the function g
to the alpha channel. Works in-place.
sourcefn map2<F>(&self, other: &Self, f: F) -> Selfwhere
F: FnMut(Self::Subpixel, Self::Subpixel) -> Self::Subpixel,
fn map2<F>(&self, other: &Self, f: F) -> Selfwhere
F: FnMut(Self::Subpixel, Self::Subpixel) -> Self::Subpixel,
Apply the function f
to each channel of this pixel and
other
pairwise.