qr_code
=======
[](https://crates.io/crates/qr_code)
[](./LICENSE-APACHE.txt)
QR code encoder and decoder [*] in Rust. [Documentation](https://docs.rs/qr_code).
### 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
```rust
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
```rust
let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
println!("{}", qr_code.to_string(false, 3));
```
Generates this output (looks better in terminal):
```text
█▀▀▀▀▀█ ▀▀▀█ █▀▀▀▀▀█
█ ███ █ █ █ ▀ █ ███ █
█ ▀▀▀ █ ██ ▄▀ █ ▀▀▀ █
▀▀▀▀▀▀▀ █ █ ▀ ▀▀▀▀▀▀▀
▀ ▀█▀▀▀ ▄▀ █▄▄█▀▀██ ▄
█▀▀█▀▄▄▀█▄█▄█▀ ██▀
▀▀▀ ▀▀█▀▀ █ █ ▄ ▀
█▀▀▀▀▀█ ▄▀▄▀ ▀ ▄█▄██
█ ███ █ █▄ █▄█▄▄▀▄ ▀
█ ▀▀▀ █ ▀█ ▄█▄█▀▄▄█
▀▀▀▀▀▀▀ ▀▀ ▀ ▀ ▀
```
## Minimum Supported Rust Version (MSRV)
Current MSRV is 1.48.0