rust-bmp ======== [![Build Status](https://travis-ci.org/sondrele/rust-bmp.svg?branch=master)](https://travis-ci.org/sondrele/rust-bmp) [Full documentation](http://sondrele.github.io/rust-bmp/bmp/index.html) Small module for reading and writing bitmap images. See the documentation for the current status of BMP encoding and decoding support. Usage ----- An updated version of the library should be available on [crates.io](https://crates.io/crates/bmp). Add the following to your `Cargo.toml` to get is a dependency. ```toml [dependencies] bmp = "*" ``` ###Initializing Initialize a new image with the `new` function, by specifying `width` and `height`. ```rust extern crate bmp; use bmp::Image; let mut img = Image::new(100, 100); ``` ###Editing Edit image data using the `get_pixel` and `set_pixel` functions. Save an image with the `save` function, by specifying the `path`. The function returns an `IoResult` which indicates whether the save was successful or not. ```rust let pixel = img.get_pixel(0, 0); img.set_pixel(50, 50, Pixel { r: 255, g: 255, b: 255 }); let _ = img.save("path/to/img.bmp"); ``` ###Opening Open an existing image with the `open` function, by specifying the `path`. The function returns a `BmpResult`, that contains either a `Image` or a `BmpError`. ```rust extern crate bmp; let img = bmp::open("path/to/img.bmp").unwrap_or_else(|e| { panic!("Failed to open: {}", e); }); ``` Coordinate convention --------------------- The BMP images are accessed in row-major order, where point (0, 0) is defined to be in the upper left corner of the image. Example ------- ```rust #[macro_use] extern crate bmp; use bmp::{Image, Pixel}; fn main() { let mut img = Image::new(256, 256); for (x, y) in img.coordinates() { img.set_pixel(x, y, px!(x, y, 200)); } let _ = img.save("img.bmp"); } ```