[−][src]Trait embedded_graphics::pixelcolor::PixelColor
Pixel color trait
This trait should be implemented for any type an embedded graphics item can be rendered into.
It is implemented for u8
, u16
and u32
so any display drivers that use these types for
their pixel values should work out of the box.
If a custom pixel type is used in a driver, PixelColor
must be implemented for it to be
compatible. Below is a contrived example that wraps a u16
in a struct.
use embedded_graphics::drawable::Pixel; use embedded_graphics::unsignedcoord::UnsignedCoord; use embedded_graphics::pixelcolor::PixelColor; // `Copy` and `Clone` are bounds on `PixelColor` and are required. // `PartialEq` is for the `assert_eq!()` later in this example. // `Debug` is for convenience :) #[derive(Copy, Clone, PartialEq, Debug)] struct CustomPixelColor { pub value: u16, } impl CustomPixelColor { fn new(color: u16) -> Self { CustomPixelColor { value: color } } } impl PixelColor for CustomPixelColor {} // `From<u8>` is a bound on `PixelColor` so must be implemented for your pixel colour type. You // can also implement `From` for other types like `u16`, etc for convenience. impl From<u8> for CustomPixelColor { fn from(other: u8) -> Self { CustomPixelColor { value: other as u16, } } } fn main() { let colour = CustomPixelColor::new(127u16); assert_eq!(colour.value, 127u16); }