MicroPNM πŸŽ¨πŸ’»

Rust Crates.io GitHub issues GitHub pull requests

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. 🚫

Usage πŸ› οΈ

Add the following to your Cargo.toml file:

toml [dependencies] micropnm = "0.1.0"

In your Rust code, use it like this:

```rust use micropnm::PNMImage;

let rawimg = includebytes!("./path/to/your/binaryimage.ppm"); let ppmimg = PNMImage::fromparse(rawimg).unwrap();

// Get the image dimensions let width = ppmimg.width(); let height = ppmimg.height();

// Get the maximum pixel value let maxpixel = ppmimg.maximum_pixel();

// Get the image comment let comment = ppm_img.comment();

// Get the RGB value of a pixel let (r, g, b) = ppmimg.pixelrgb(10, 20).unwrap(); ```

Minimal Allocations πŸ§‘β€πŸ’»

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. πŸ’Ύ

License πŸ“œ

This library is licensed under the MIT license.