tinybmp 0.1.0

No-std, low memory footprint BMP image loader
Documentation

TinyBMP

Build Status Crates.io Docs.rs

Documentation

A small BMP parser designed for embedded, no-std environments but usable anywhere. Beyond parsing the image header, no other allocations are made. A reference to the input image data is kept and slices are returned from it.

Example

use tinybmp::{Bmp, Header, FileType};

let bmp =
    Bmp::from_bytes(include_bytes!("./my_image.bmp")).expect("Failed to parse image");

// Metadata extracted from image. Assumes my_image.bmp is 8x8px, 24BPP
assert_eq!(
    bmp.header,
    Header {
        file_type: FileType::BM,
        file_size: 314,
        reserved_1: 0,
        reserved_2: 0,
        image_data_start: 122,
        bpp: 24,
        image_width: 8,
        image_height: 8,
    }
);

let image_data: &[u8] = bmp.image_data();

// Render, process or iterate on `image_data` here

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.