Struct plotters_bitmap::BitMapBackend
source · [−]pub struct BitMapBackend<'a, P: PixelFormat = RGBPixel> { /* private fields */ }Expand description
The backend that drawing a bitmap
Warning
You should call .present()? on a
BitMapBackend, not just drop it or allow it to go out of scope.
If the BitMapBackend is just dropped, it will make a best effort attempt to write the
generated charts to the output file, but any errors that occcur (such as inability to
create the output file) will be silently ignored.
Implementations
sourceimpl<'a> BitMapBackend<'a, RGBPixel>
impl<'a> BitMapBackend<'a, RGBPixel>
sourcepub fn new<T: AsRef<Path> + ?Sized>(path: &'a T, (w, h): (u32, u32)) -> Self
pub fn new<T: AsRef<Path> + ?Sized>(path: &'a T, (w, h): (u32, u32)) -> Self
Create a new bitmap backend
sourcepub fn gif<T: AsRef<Path>>(
path: T,
(w, h): (u32, u32),
frame_delay: u32
) -> Result<Self, BitMapBackendError>
pub fn gif<T: AsRef<Path>>(
path: T,
(w, h): (u32, u32),
frame_delay: u32
) -> Result<Self, BitMapBackendError>
Create a new bitmap backend that generate GIF animation
When this is used, the bitmap backend acts similar to a real-time rendering backend.
When the program finished drawing one frame, use present function to flush the frame
into the GIF file.
path: The path to the GIF file to createdimension: The size of the GIF imagespeed: The amount of time for each frame to display
sourcepub fn with_buffer(buf: &'a mut [u8], (w, h): (u32, u32)) -> Self
pub fn with_buffer(buf: &'a mut [u8], (w, h): (u32, u32)) -> Self
Create a new bitmap backend which only lives in-memory
When this is used, the bitmap backend will write to a user provided u8 array (or Vec
Note: This function provides backward compatibility for those code that assumes Plotters
uses RGB pixel format and maniuplates the in-memory framebuffer.
For more pixel format option, use with_buffer_and_format instead.
buf: The buffer to operatedimension: The size of the image in pixels- returns: The newly created bitmap backend
sourceimpl<'a, P: PixelFormat> BitMapBackend<'a, P>
impl<'a, P: PixelFormat> BitMapBackend<'a, P>
sourcepub fn with_buffer_and_format(
buf: &'a mut [u8],
(w, h): (u32, u32)
) -> Result<Self, BitMapBackendError>
pub fn with_buffer_and_format(
buf: &'a mut [u8],
(w, h): (u32, u32)
) -> Result<Self, BitMapBackendError>
Create a new bitmap backend with a in-memory buffer with specific pixel format.
Note: This can be used as a way to manipulate framebuffer, mmap can be used on the top of this
as well.
buf: The buffer to operatedimension: The size of the image in pixels- returns: The newly created bitmap backend
sourcepub fn split(&mut self, area_size: &[u32]) -> Vec<BitMapBackend<'_, P>>
pub fn split(&mut self, area_size: &[u32]) -> Vec<BitMapBackend<'_, P>>
Split a bitmap backend vertically into several sub drawing area which allows multi-threading rendering.
area_size: The size of the area- returns: The splitted backends that can be rendered in parallel
Trait Implementations
sourceimpl<'a, P: PixelFormat> DrawingBackend for BitMapBackend<'a, P>
impl<'a, P: PixelFormat> DrawingBackend for BitMapBackend<'a, P>
type ErrorType = BitMapBackendError
type ErrorType = BitMapBackendError
The error type reported by the backend
sourcefn ensure_prepared(
&mut self
) -> Result<(), DrawingErrorKind<BitMapBackendError>>
fn ensure_prepared(
&mut self
) -> Result<(), DrawingErrorKind<BitMapBackendError>>
Ensure the backend is ready to draw
sourcefn present(&mut self) -> Result<(), DrawingErrorKind<BitMapBackendError>>
fn present(&mut self) -> Result<(), DrawingErrorKind<BitMapBackendError>>
Finalize the drawing step and present all the changes.
This is used as the real-time rendering support.
The backend may implement in the following way, when ensure_prepared is called
it checks if it needs a fresh buffer and present is called rendering all the
pending changes on the screen. Read more
sourcefn draw_pixel(
&mut self,
point: BackendCoord,
color: BackendColor
) -> Result<(), DrawingErrorKind<BitMapBackendError>>
fn draw_pixel(
&mut self,
point: BackendCoord,
color: BackendColor
) -> Result<(), DrawingErrorKind<BitMapBackendError>>
Draw a pixel on the drawing backend Read more
sourcefn draw_line<S: BackendStyle>(
&mut self,
from: (i32, i32),
to: (i32, i32),
style: &S
) -> Result<(), DrawingErrorKind<Self::ErrorType>>
fn draw_line<S: BackendStyle>(
&mut self,
from: (i32, i32),
to: (i32, i32),
style: &S
) -> Result<(), DrawingErrorKind<Self::ErrorType>>
Draw a line on the drawing backend Read more
sourcefn draw_rect<S: BackendStyle>(
&mut self,
upper_left: (i32, i32),
bottom_right: (i32, i32),
style: &S,
fill: bool
) -> Result<(), DrawingErrorKind<Self::ErrorType>>
fn draw_rect<S: BackendStyle>(
&mut self,
upper_left: (i32, i32),
bottom_right: (i32, i32),
style: &S,
fill: bool
) -> Result<(), DrawingErrorKind<Self::ErrorType>>
Draw a rectangle on the drawing backend Read more
sourcefn blit_bitmap(
&mut self,
pos: BackendCoord,
(sw, sh): (u32, u32),
src: &[u8]
) -> Result<(), DrawingErrorKind<Self::ErrorType>>
fn blit_bitmap(
&mut self,
pos: BackendCoord,
(sw, sh): (u32, u32),
src: &[u8]
) -> Result<(), DrawingErrorKind<Self::ErrorType>>
Blit a bitmap on to the backend. Read more
sourcefn draw_path<S, I>(
&mut self,
path: I,
style: &S
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
S: BackendStyle,
I: IntoIterator<Item = (i32, i32)>,
fn draw_path<S, I>(
&mut self,
path: I,
style: &S
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
S: BackendStyle,
I: IntoIterator<Item = (i32, i32)>,
Draw a path on the drawing backend Read more
sourcefn draw_circle<S>(
&mut self,
center: (i32, i32),
radius: u32,
style: &S,
fill: bool
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
S: BackendStyle,
fn draw_circle<S>(
&mut self,
center: (i32, i32),
radius: u32,
style: &S,
fill: bool
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
S: BackendStyle,
Draw a circle on the drawing backend Read more
fn fill_polygon<S, I>(
&mut self,
vert: I,
style: &S
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
S: BackendStyle,
I: IntoIterator<Item = (i32, i32)>,
sourcefn draw_text<TStyle>(
&mut self,
text: &str,
style: &TStyle,
pos: (i32, i32)
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
TStyle: BackendTextStyle,
fn draw_text<TStyle>(
&mut self,
text: &str,
style: &TStyle,
pos: (i32, i32)
) -> Result<(), DrawingErrorKind<Self::ErrorType>> where
TStyle: BackendTextStyle,
Draw a text on the drawing backend Read more
sourcefn estimate_text_size<TStyle>(
&self,
text: &str,
style: &TStyle
) -> Result<(u32, u32), DrawingErrorKind<Self::ErrorType>> where
TStyle: BackendTextStyle,
fn estimate_text_size<TStyle>(
&self,
text: &str,
style: &TStyle
) -> Result<(u32, u32), DrawingErrorKind<Self::ErrorType>> where
TStyle: BackendTextStyle,
Estimate the size of the horizontal text if rendered on this backend. This is important because some of the backend may not have font ability. Thus this allows those backend reports proper value rather than ask the font rasterizer for that. Read more
sourceimpl<P: PixelFormat> Drop for BitMapBackend<'_, P>
impl<P: PixelFormat> Drop for BitMapBackend<'_, P>
Auto Trait Implementations
impl<'a, P> RefUnwindSafe for BitMapBackend<'a, P> where
P: RefUnwindSafe,
impl<'a, P> Send for BitMapBackend<'a, P> where
P: Send,
impl<'a, P> Sync for BitMapBackend<'a, P> where
P: Sync,
impl<'a, P> Unpin for BitMapBackend<'a, P> where
P: Unpin,
impl<'a, P = RGBPixel> !UnwindSafe for BitMapBackend<'a, P>
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