Trait plotters_bitmap::bitmap_pixel::PixelFormat
source · 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
Object Safety§
This trait is not object safe.