GitHub - kennytm/qrcode-rust at ba77f8bc2d9baa8b0ab0bee8f04f4d27b20745c6 (original) (raw)

qrcode-rust

Build status Coverage Status crates.io MIT / Apache 2.0

QR code and Micro QR code encoder in Rust. Documentation.

Cargo.toml

[dependencies] qrcode = "0.4"

The default settings will depend on the image crate. If you don't need image generation capability, disable the default-features:

[dependencies] qrcode = { version = "0.4", default-features = false }

Example

Image generation

extern crate qrcode; extern crate image;

use qrcode::QrCode; use image::Luma;

fn main() { // Encode some data into bits. let code = QrCode::new(b"01234567").unwrap();

// Render the bits into an image.
let image = code.render::<Luma<u8>>().build();

// Save the image.
image.save("/tmp/qrcode.png").unwrap();

}

Generates this image:

Output

String generation

extern crate qrcode; use qrcode::QrCode;

fn main() { let code = QrCode::new(b"Hello").unwrap(); let string = code.render::() .quiet_zone(false) .module_dimensions(2, 1) .build(); println!("{}", string); }

Generates this output:

##############    ########  ##############
##          ##          ##  ##          ##
##  ######  ##  ##  ##  ##  ##  ######  ##
##  ######  ##  ##  ##      ##  ######  ##
##  ######  ##  ####    ##  ##  ######  ##
##          ##  ####  ##    ##          ##
##############  ##  ##  ##  ##############
                ##  ##
##  ##########    ##  ##    ##########
      ##        ##    ########    ####  ##
    ##########    ####  ##  ####  ######
    ##    ##  ####  ##########    ####
  ######    ##########  ##    ##        ##
                ##      ##    ##  ##
##############    ##  ##  ##    ##  ####
##          ##  ##  ##        ##########
##  ######  ##  ##    ##  ##    ##    ##
##  ######  ##  ####  ##########  ##
##  ######  ##  ####    ##  ####    ##
##          ##    ##  ########  ######
##############  ####    ##      ##    ##

SVG generation

extern crate qrcode;

use qrcode::{QrCode, Version, EcLevel}; use qrcode::render::svg;

fn main() { let code = QrCode::with_version(b"01234567", Version::Micro(2), EcLevel::L).unwrap(); let image = code.render() .min_dimensions(200, 200) .dark_color(svg::Color("#800000")) .light_color(svg::Color("#ffff80")) .build(); println!("{}", string); }

Generates this SVG:

Output