14 releases (3 stable)
2.0.0 | May 30, 2023 |
---|---|
1.1.0 | Nov 21, 2020 |
0.19.0 | Oct 22, 2020 |
#155 in Images
1,685 downloads per month
Used in 23 crates
(10 directly)
310KB
7.5K
SLoC
qr_code
QR code encoder and decoder [*] in Rust. Documentation.
Encoder
This lib forked https://docs.rs/qrcode mainly because of lack of support to structured QR code (multiple QR codes) even if the minimal change required has been pushed https://github.com/kennytm/qrcode-rust/pull/44
Moreover dependencies image
, checked_int_cast
and module render
has been removed with a view to simplicity.
Decoder [*]
Decoder part is based on https://docs.rs/rqrr/0.3.0/rqrr/ without the image detection part and is not intended for scanning QR codes from camera.
Decoder is included only for testing purpose, so that depending libraries could run round trip during tests.
Example
Bmp image generation
requires bmp
feature
let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
let bmp = qr_code.to_bmp();
bmp.write(std::fs::File::create("test.bmp").unwrap()).unwrap();
Generate this image:
Looks small?
Many context supports rescaling mode specific for pixelated images, for example in html image-rendering: pixelated;
As an alternative see method Bmp::mul
and Bmp::add_whitespace
Unicode string generation
let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
println!("{}", qr_code.to_string(false, 3));
Generates this output (looks better in terminal):
█▀▀▀▀▀█ ▀▀▀█ █▀▀▀▀▀█
█ ███ █ █ █ ▀ █ ███ █
█ ▀▀▀ █ ██ ▄▀ █ ▀▀▀ █
▀▀▀▀▀▀▀ █ █ ▀ ▀▀▀▀▀▀▀
▀ ▀█▀▀▀ ▄▀ █▄▄█▀▀██ ▄
█▀▀█▀▄▄▀█▄█▄█▀ ██▀
▀▀▀ ▀▀█▀▀ █ █ ▄ ▀
█▀▀▀▀▀█ ▄▀▄▀ ▀ ▄█▄██
█ ███ █ █▄ █▄█▄▄▀▄ ▀
█ ▀▀▀ █ ▀█ ▄█▄█▀▄▄█
▀▀▀▀▀▀▀ ▀▀ ▀ ▀ ▀
Minimum Supported Rust Version (MSRV)
Current MSRV is 1.48.0
Dependencies
~0–280KB