8 releases
Uses old Rust 2015
0.0.9 | Feb 24, 2018 |
---|---|
0.0.6 | Feb 22, 2018 |
0.0.3 | Sep 25, 2017 |
0.0.2 | Aug 27, 2017 |
#862 in Images
21 downloads per month
33KB
737 lines
bmp_rs
A bitmap file decoder for Microsoft bmp files.
Development Status
The following is a rough list of things that are already supported or will be in the future:
- 1-bit bitmap
- 4-bit uncompressed bitmap
- 4-bit compressed bitmap
- 8-bit uncompressed bitmap
- 8-bit compressed bitmap
- 16-bit bitmap
- 24-bit bitmap
- 32-bit bitmap
- Microsoft BMP Version 1 header
- Microsoft BMP Version 2 header
- Microsoft BMP Version 3 header
- Microsoft BMP Version 4 header
- Microsoft BMP Version 5 header
- IBM OS/2 1.x BMP header (32k x 32k limit)
- IBM OS/2 2.x BMP header
- OS/2 Bitmap Array type
- OS/2 Color Icon type
- OS/2 Color Pointer type
- OS/2 Struct Icon type
- OS/2 Pointer type
- Extended decoding that returns header data
- Bitmap Encoding
- Test suite
- Documentation
- Examples
Example
use std::fs::File;
use bmp_rs::{
Result,
Decoder,
};
struct ImageDecoder {
// Your builder type that is able to construct an image
}
struct Image {
// Your image type that represents a bitmap
}
impl Decoder for ImageDecoder {
type TResult = Image; // Your image type
fn set_size( &mut self, width: u32, height: u32 ) {
// Set image size
}
fn set_pixel( &mut self, x: u32, y: u32, r: u8, g: u8, b: u8, a: u8 ) {
// Set a specific pixel within that image to the given color
}
fn build( &mut self ) -> Result<Self::TResult> {
// Build and return your final image
Ok ( Image { } )
}
}
fn main() {
let mut file = File::open( "image.bmp" ).unwrap();
let image = bmp_rs::decode( &mut file, ImageDecoder { } );
// Do something with your image
}
License
See LICENSE file.
Dependencies
~165KB