Expand description
§Load image as sRGB
Glue code for a few libraries that correctly loads a JPEG, PNG, or (optionally) WebP or AVIF image into memory, taking into accout color profile metadata in PNG chunks, EXIF data and app markers. Converts CMYK to RGB if needed.
cargo add load_imagefn main() -> Result<(), Box<dyn std::error::Error>> {
let path = std::env::args().nth(1).ok_or("Please provide image file path")?;
let img = load_image::load_image(path)?;
}The returned Image is:
struct Image {
pub width: usize,
pub height: usize,
pub bitmap: enum ImageData {
RGB8(Vec<RGB8>),
RGBA8(Vec<RGBA8>),
RGB16(Vec<RGB16>),
RGBA16(Vec<RGBA16>),
GRAY8(Vec<GRAY8>),
GRAY16(Vec<GRAY16>),
GRAYA8(Vec<GRAYA8>),
GRAYA16(Vec<GRAYA16>),
}
}The bitmap is packed, so x + y * width gives the pixel at x,y (use imgref for convenient manipulation).
The load_image function doesn’t panic, but if you enable the mozjpeg feature, it will depend on unwinding internally, and won’t be compatible with crates compiled with panic = "abort" option.
Modules§
- export
- Re-export of related crates
Structs§
- Image
- The pixels are in the
Image::bitmapfield - Image
Meta - Loader
Enums§
- Chunk
Type - Additional non-image metadata fetched from source files
- Error
- Format
- File type of the image
- Image
Data - Pixels of the image
- Profiles
- Rotate
Traits§
- From
Options - Convert
ImgVecto anImageby providing metadata
Functions§
- load_
data - Load image from file data in memory. Use
Loaderto configure it. - load_
path - Load image from file path. Use
Loaderto configure it.