qr-image 0.1.2

A simple CLI tool to generate a qr_code image for easy sharing and privately
use qrcode::QrCode;
use image::Luma;
use reqwest::Error;
use std::io::Cursor;

pub fn generate_qr(data: &str, size: u32, format: &str) -> Result<Vec<u8>, Error> {
    let code = match QrCode::new(data.as_bytes()) {
        Ok(code) => {
            code
        },
        Err(e) => {
            eprintln!("Couldn't generate QR-Code: {}", e);
            return Ok(vec![])
        },
    };

    let image = code.render::<Luma<u8>>().min_dimensions(size, size).build();

    let form = match format {
        "webp" => image::ImageFormat::WebP,
        "jpeg" => image::ImageFormat::Jpeg,
        "bmp" => image::ImageFormat::Bmp,
        _ => image::ImageFormat::Png
    };

    let mut buffer = Cursor::new(Vec::new());
    let image = image
        .write_to(&mut buffer, form);
    match image {
        Ok(image) => {
            image
        },
        Err(e) => {
            eprint!("Error: {}", e)
        },
    }

    Ok(buffer.into_inner())
}