Crates.io | micropnm |
lib.rs | micropnm |
version | 0.1.0 |
source | src |
created_at | 2023-05-04 19:01:26.998782 |
updated_at | 2023-05-04 19:01:26.998782 |
description | MicroPNM is a lightweight, zero-dependency Rust crate for parsing binary PPM image files. It is designed to with minimal memory usage and is suitable for embedded contexts and WebAssembly. |
homepage | |
repository | |
max_upload_size | |
id | 857018 |
size | 21,457 |
MicroPNM is a small and efficient library for parsing PNM image formats in Rust. π¦
It is designed to be minimalistic and highly optimized for resource-constrained systems, π
making it suitable for embedded contexts and WebAssembly using the include_bytes!
macro. πͺ
At the moment, only reading of binary PPM (P6) is supported. π«
Add the following to your Cargo.toml
file:
[dependencies]
micropnm = "0.1.0"
In your Rust code, use it like this:
use micropnm::PNMImage;
let raw_img = include_bytes!("./path/to/your/binary_image.ppm");
let ppm_img = PNMImage::from_parse(raw_img).unwrap();
// Get the image dimensions
let width = ppm_img.width();
let height = ppm_img.height();
// Get the maximum pixel value
let max_pixel = ppm_img.maximum_pixel();
// Get the image comment
let comment = ppm_img.comment();
// Get the RGB value of a pixel
let (r, g, b) = ppm_img.pixel_rgb(10, 20).unwrap();
MicroPNM is designed with minimal memory usage in mind. π This makes it suitable for use in embedded contexts or in WebAssembly modules. πΈοΈ The PNMImage type itself is simply a thin wrapper around a byte slice of raw image data. πΎ
This library is licensed under the MIT license.