#codec #monochrome #bmp #qrcode #bitmap #codes #monochromatic

bmp-monochrome

Encode and decode monochromatic bitmaps without additional dependencies, useful for QR codes

17 releases (2 stable)

1.1.0 May 9, 2023
1.0.0 Oct 28, 2020
0.17.0 Oct 25, 2020

#574 in Images

Download history 42/week @ 2024-03-16 40/week @ 2024-03-23 102/week @ 2024-03-30 53/week @ 2024-04-06 84/week @ 2024-04-13 532/week @ 2024-04-20 1303/week @ 2024-04-27 715/week @ 2024-05-04 1011/week @ 2024-05-11 788/week @ 2024-05-18 699/week @ 2024-05-25 854/week @ 2024-06-01 504/week @ 2024-06-08 948/week @ 2024-06-15 646/week @ 2024-06-22 413/week @ 2024-06-29

2,574 downloads per month
Used in 17 crates (via qr_code)

MIT license

36KB
813 lines

bmp-monochrome

crates.io

Encode and decode monochromatic bitmaps without additional dependencies, useful for QR codes.

Example

use bmp_monochrome::Bmp;
use std::error::Error;
use std::fs::File;

fn main() -> Result<(), Box<dyn Error>> {
    let file_name = "test.bmp";
    let width = 21;
    let data: Vec<bool> = (0..width * width).map(|e| e % 2 == 0).collect();
    let rows: Vec<Vec<bool>> = data.chunks(width).map(|e| e.to_vec()).collect();
    let bmp = Bmp::new(rows)?;
    bmp.write(File::create(file_name)?)?;
    let bmp_read = Bmp::read(File::open(file_name)?)?;
    assert_eq!(bmp, bmp_read);
    Ok(())
}

Generates

test

Minimum Supported Rust Version (MSRV)

Rust 1.34

Use u32::try_from introduced in 1.34.0


lib.rs:

BMP monochrome

This library encode and decode monochromatic bitmap with no extra dependencies. Especially useful to encode QR-codes

Dependencies

~0–2.6MB
~12K SLoC