#qr

quircs

QR code detection and scanning. Pure Rust.

5 releases

0.10.2 Jan 22, 2024
0.10.1 Mar 9, 2023
0.10.0 Jun 15, 2020
0.9.1 Jun 11, 2020
0.9.0 Jun 7, 2020

#101 in Images

Download history 746/week @ 2024-06-14 719/week @ 2024-06-21 690/week @ 2024-06-28 692/week @ 2024-07-05 716/week @ 2024-07-12 777/week @ 2024-07-19 1417/week @ 2024-07-26 1266/week @ 2024-08-02 1220/week @ 2024-08-09 955/week @ 2024-08-16 848/week @ 2024-08-23 871/week @ 2024-08-30 925/week @ 2024-09-06 865/week @ 2024-09-13 762/week @ 2024-09-20 459/week @ 2024-09-27

3,138 downloads per month
Used in 3 crates

MIT license

81KB
2.5K SLoC

quircs

QR Scanner in Rust.


Ported from quirc.

Example

// open the image from disk
let img = image::open("tests/data/Hello+World.png").unwrap();

// convert to gray scale
let img_gray = img.into_luma();

// create a decoder
let mut decoder = quircs::Quirc::default();

// identify all qr codes
let codes = decoder.identify(img_gray.width() as usize, img_gray.height() as usize, &img_gray);

for code in codes {
    let code = code.expect("failed to extract qr code");
    let decoded = code.decode().expect("failed to decode qr code");
    println!("qrcode: {}", std::str::from_utf8(&decoded.payload).unwrap());
}

CLI Example

$ cargo build --release --example qrtest
$ qrtest <path-to-image>

Dependencies

~0.4–0.9MB
~19K SLoC