2 releases

0.1.1 Mar 4, 2023
0.1.0 Mar 4, 2023

#782 in Images

MIT license

230KB
5K SLoC

qrcode_gen

Rust QR Code Generic Generator

Example

  • example 1
use image::Luma;
use qrcode_gen::{
    render::{svg, unicode},
    EcLevel, QrCode, Version,
};

fn main() {
    // Image generation
    // 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();

    // String generation
    let code = QrCode::new(b"Hello").unwrap();
    let string = code
        .render::<char>()
        .quiet_zone(false)
        .module_dimensions(2, 1)
        .build();
    println!("{}", string);

    // SVG generation
    let code = QrCode::with_version(b"123", Version::Normal(5), EcLevel::M).unwrap();
    let image = code
        .render()
        .min_dimensions(200, 200)
        .dark_color(svg::Color("#800000"))
        .light_color(svg::Color("#ffff80"))
        .build();
    println!("{}", image);

    let micro_code = QrCode::with_version(b"123", Version::Micro(1), EcLevel::L).unwrap();
    let image = micro_code
        .render()
        .min_dimensions(200, 200)
        .dark_color(svg::Color("#800000"))
        .light_color(svg::Color("#ffff80"))
        .build();
    println!("{}", image);

    // Unicode string generation
    let code = QrCode::new("mow mow").unwrap();
    let image = code
        .render::<unicode::Dense1x2>()
        .dark_color(unicode::Dense1x2::Light)
        .light_color(unicode::Dense1x2::Dark)
        .build();
    println!("{}", image);
}
  • example 2
fn main() {
    // print qrcode
    qrcode_gen::qr_print("https://rust-lang.org/").unwrap();

    // print qrcode unicode string
    let string = qrcode_gen::qr_string("https://rust-lang.org/").unwrap();
    println!("{}", string);

    // print qrcode u8 arr
    let u8_arr = qrcode_gen::qr_bytes("https://rust-lang.org/").unwrap();
    println!("{:?}", u8_arr);

    // print qrcode svg String
    let svg = qrcode_gen::qr_svg("https://rust-lang.org/");
    println!("{:?}", svg);

    // qrcode image write to /tmp/qrcode.png
    qrcode_gen::qr_image("https://rust-lang.org/", "/tmp/qrcode.png");
}

Dependencies

~8–20MB
~185K SLoC