pub trait PixelFormat: Sized {
const PIXEL_SIZE: usize;
const EFFECTIVE_PIXEL_SIZE: usize;
// Required methods
fn byte_at(r: u8, g: u8, b: u8, a: u64, idx: usize) -> u8;
fn decode_pixel(data: &[u8]) -> (u8, u8, u8, u64);
fn blend_rect_fast(
target: &mut BitMapBackend<'_, Self>,
upper_left: (i32, i32),
bottom_right: (i32, i32),
r: u8,
g: u8,
b: u8,
a: f64,
);
fn fill_rect_fast(
target: &mut BitMapBackend<'_, Self>,
upper_left: (i32, i32),
bottom_right: (i32, i32),
r: u8,
g: u8,
b: u8,
);
// Provided methods
fn fill_vertical_line_fast(
target: &mut BitMapBackend<'_, Self>,
x: i32,
ys: (i32, i32),
r: u8,
g: u8,
b: u8,
) { ... }
fn draw_pixel(
target: &mut BitMapBackend<'_, Self>,
point: (i32, i32),
(r, g, b): (u8, u8, u8),
alpha: f64,
) { ... }
fn can_be_saved() -> bool { ... }
}Expand description
The trait that describes some details about a particular pixel format
Required Associated Constants§
Sourceconst PIXEL_SIZE: usize
const PIXEL_SIZE: usize
Number of bytes per pixel
Sourceconst EFFECTIVE_PIXEL_SIZE: usize
const EFFECTIVE_PIXEL_SIZE: usize
Number of effective bytes per pixel, e.g. for BGRX pixel format, the size of pixel is 4 but the effective size is 3, since the 4th byte isn’t used
Required Methods§
Sourcefn byte_at(r: u8, g: u8, b: u8, a: u64, idx: usize) -> u8
fn byte_at(r: u8, g: u8, b: u8, a: u64, idx: usize) -> u8
Encoding a pixel and returns the idx-th byte for the pixel
Sourcefn blend_rect_fast(
target: &mut BitMapBackend<'_, Self>,
upper_left: (i32, i32),
bottom_right: (i32, i32),
r: u8,
g: u8,
b: u8,
a: f64,
)
fn blend_rect_fast( target: &mut BitMapBackend<'_, Self>, upper_left: (i32, i32), bottom_right: (i32, i32), r: u8, g: u8, b: u8, a: f64, )
The fast alpha blending algorithm for this pixel format
target: The target bitmap backendupper_left: The upper-left coord for the rectbottom_right: The bottom-right coord for the rectr,g,b,a: The blending color and alpha value
Sourcefn fill_rect_fast(
target: &mut BitMapBackend<'_, Self>,
upper_left: (i32, i32),
bottom_right: (i32, i32),
r: u8,
g: u8,
b: u8,
)
fn fill_rect_fast( target: &mut BitMapBackend<'_, Self>, upper_left: (i32, i32), bottom_right: (i32, i32), r: u8, g: u8, b: u8, )
The fast rectangle filling algorithm
target: The target bitmap backendupper_left: The upper-left coord for the rectbottom_right: The bottom-right coord for the rectr,g,b: The filling color
Provided Methods§
Sourcefn fill_vertical_line_fast(
target: &mut BitMapBackend<'_, Self>,
x: i32,
ys: (i32, i32),
r: u8,
g: u8,
b: u8,
)
fn fill_vertical_line_fast( target: &mut BitMapBackend<'_, Self>, x: i32, ys: (i32, i32), r: u8, g: u8, b: u8, )
The fast vertical line filling algorithm
target: The target bitmap backendx: the X coordinate for the entire lineys: The range of y coordr,g,b: The blending color and alpha value
Sourcefn draw_pixel(
target: &mut BitMapBackend<'_, Self>,
point: (i32, i32),
(r, g, b): (u8, u8, u8),
alpha: f64,
)
fn draw_pixel( target: &mut BitMapBackend<'_, Self>, point: (i32, i32), (r, g, b): (u8, u8, u8), alpha: f64, )
Drawing a single pixel in this format
target: The target bitmap backendpoint: The coord of the pointr,g,b: The filling coloralpha: The alpha value
Sourcefn can_be_saved() -> bool
fn can_be_saved() -> bool
Indicates if this pixel format can be saved as image. Note: Currently we only using RGB pixel format in the image crate, but later we may lift this restriction
returns: If the image can be saved as image file
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".