Struct pix_engine::image::Image
source · pub struct Image { /* private fields */ }
Expand description
An Image
representing a buffer of pixel color values.
Implementations§
source§impl Image
impl Image
sourcepub fn new(width: u32, height: u32) -> Self
pub fn new(width: u32, height: u32) -> Self
Constructs an empty RGBA Image
with given width
and height
.
sourcepub fn rgba(width: u32, height: u32) -> Self
pub fn rgba(width: u32, height: u32) -> Self
Constructs an empty RGBA Image
with given width
and height
.
Alias for Image::new.
sourcepub fn rgb(width: u32, height: u32) -> Self
pub fn rgb(width: u32, height: u32) -> Self
Constructs an empty RGB Image
with given width
and height
.
sourcepub fn from_bytes<B: AsRef<[u8]>>(
width: u32,
height: u32,
bytes: B,
format: PixelFormat
) -> PixResult<Self>
pub fn from_bytes<B: AsRef<[u8]>>( width: u32, height: u32, bytes: B, format: PixelFormat ) -> PixResult<Self>
Constructs an Image
from a u8 slice representing RGB/A values.
Errors
If the bytes length doesn’t match the image dimensions and PixelFormat
provided, then
an error is returned.
sourcepub fn from_pixels<P: AsRef<[Color]>>(
width: u32,
height: u32,
pixels: P,
format: PixelFormat
) -> PixResult<Self>
pub fn from_pixels<P: AsRef<[Color]>>( width: u32, height: u32, pixels: P, format: PixelFormat ) -> PixResult<Self>
Constructs an Image
from a Color slice representing RGBA values.
Errors
If the pixels length doesn’t match the image dimensions and PixelFormat
provided, then
an error is returned.
sourcepub fn from_vec(
width: u32,
height: u32,
data: Vec<u8>,
format: PixelFormat
) -> Self
pub fn from_vec( width: u32, height: u32, data: Vec<u8>, format: PixelFormat ) -> Self
Constructs an Image
from a Vec<u8>
representing RGB/A values.
sourcepub const fn dimensions(&self) -> (u32, u32)
pub const fn dimensions(&self) -> (u32, u32)
Returns the Image
dimensions as (width, height)
.
sourcepub const fn pitch(&self) -> usize
pub const fn pitch(&self) -> usize
Returns the pitch
of the image data which is the number of bytes in a row of pixel data,
including padding between lines.
sourcepub fn bounding_rect(&self) -> Rect<i32>
pub fn bounding_rect(&self) -> Rect<i32>
sourcepub fn bounding_rect_offset<P>(&self, offset: P) -> Rect<i32>
pub fn bounding_rect_offset<P>(&self, offset: P) -> Rect<i32>
Returns the Image
bounding Rect positioned at offset
.
sourcepub fn as_mut_bytes(&mut self) -> &mut [u8] ⓘ
pub fn as_mut_bytes(&mut self) -> &mut [u8] ⓘ
sourcepub fn into_bytes(self) -> Vec<u8>
pub fn into_bytes(self) -> Vec<u8>
Returns the Image
pixel data as a Vec<u8>
.
This consumes the Image
, so we do not need to copy its contents.
sourcepub fn into_pixels(self) -> Vec<Color>
pub fn into_pixels(self) -> Vec<Color>
Returns the Image
pixel data as a Vec<Color>
.
Panics
Panics if the image has an invalid sequence of bytes given it’s PixelFormat
.
sourcepub fn get_pixel(&self, x: u32, y: u32) -> Color
pub fn get_pixel(&self, x: u32, y: u32) -> Color
Returns the color value at the given (x, y)
position.
Panics
Panics if the image has an invalid sequence of bytes given it’s PixelFormat
, or the (x, y
) index is out of range.
sourcepub fn set_pixel<C: Into<Color>>(&mut self, x: u32, y: u32, color: C)
pub fn set_pixel<C: Into<Color>>(&mut self, x: u32, y: u32, color: C)
Sets the color value at the given (x, y)
position.
sourcepub fn update_bytes<B: AsRef<[u8]>>(&mut self, bytes: B)
pub fn update_bytes<B: AsRef<[u8]>>(&mut self, bytes: B)
sourcepub const fn format(&self) -> PixelFormat
pub const fn format(&self) -> PixelFormat
Returns the Image
pixel format.
sourcepub fn save<P>(&self, path: P) -> PixResult<()>
pub fn save<P>(&self, path: P) -> PixResult<()>
Save the Image
to a png file.
Errors
Returns an error for any of the following:
- An io::Error
occurs attempting to create the png file.
- A png::EncodingError
occurs attempting to write image bytes.
Example
fn on_key_pressed(&mut self, s: &mut PixState, event: KeyEvent) -> PixResult<bool> {
if let Key::S = event.key {
self.image.save("test_image.png")?;
}
Ok(false)
}