pub struct Image { /* private fields */ }
Expand description
The image type provided by the library.
It exposes functions to initialize or read BMP images from disk, common modification of pixel data, and saving to disk.
The image is accessed in row-major order from top to bottom, where point (0, 0) is defined to be in the upper left corner of the image.
Currently, only uncompressed BMP images are supported.
Implementations§
Source§impl Image
impl Image
Sourcepub fn new(width: u32, height: u32) -> Image
pub fn new(width: u32, height: u32) -> Image
Returns a new BMP Image with the width
and height
specified. It is initialized to
a black image by default.
§Example
let mut img = bmp::Image::new(100, 80);
Sourcepub fn get_height(&self) -> u32
pub fn get_height(&self) -> u32
Returns the height
of the Image.
Sourcepub fn set_pixel(&mut self, x: u32, y: u32, val: Pixel)
pub fn set_pixel(&mut self, x: u32, y: u32, val: Pixel)
Set the pixel value at the position of width
and height
.
§Example
let mut img = bmp::Image::new(100, 80);
img.set_pixel(10, 10, bmp::consts::RED);
Sourcepub fn get_pixel(&self, x: u32, y: u32) -> Pixel
pub fn get_pixel(&self, x: u32, y: u32) -> Pixel
Returns the pixel value at the position of width
and height
.
§Example
let img = bmp::Image::new(100, 80);
assert_eq!(bmp::consts::BLACK, img.get_pixel(10, 10));
Sourcepub fn coordinates(&self) -> ImageIndex ⓘ
pub fn coordinates(&self) -> ImageIndex ⓘ
Returns a new ImageIndex
that iterates over the image dimensions in top-bottom order.
§Example
let mut img = bmp::Image::new(100, 100);
for (x, y) in img.coordinates() {
img.set_pixel(x, y, bmp::consts::BLUE);
}
Sourcepub fn save<P: AsRef<Path>>(&self, path: P) -> Result<()>
pub fn save<P: AsRef<Path>>(&self, path: P) -> Result<()>
Saves the Image
instance to the path specified by path
.
The function will overwrite the contents if a file already exists at the given path.
The function returns the io::Result
from the underlying writer.
§Example
use bmp::Image;
let mut img = Image::new(100, 100);
let _ = img.save("black.bmp").unwrap_or_else(|e| {
panic!("Failed to save: {}", e)
});