20 个稳定版本
4.1.9 | 2023年9月9日 |
---|---|
4.1.8 | 2023年4月11日 |
4.1.7 | 2022年12月15日 |
4.1.6 | 2022年4月24日 |
1.0.3 | 2018年11月4日 |
#21 in 图像
48,955 每月下载量
在 19 个 crate 中使用 (18 直接)
26KB
528 行
二维码生成器
此 crate 提供在 RAW、PNG 和 SVG 格式中生成二维码矩阵和图像的函数。
示例
将任何数据编码为二维码矩阵,该矩阵是 Vec<Vec<bool>>
。
use qrcode_generator::QrCodeEcc;
let result: Vec<Vec<bool>> = qrcode_generator::to_matrix("Hello world!", QrCodeEcc::Low).unwrap();
println!("{:?}", result);
将任何数据编码为存储在 Vec 实例中的 PNG 图像。
use qrcode_generator::QrCodeEcc;
let result: Vec<u8> = qrcode_generator::to_png_to_vec("Hello world!", QrCodeEcc::Low, 1024).unwrap();
println!("{:?}", result);
将任何数据编码为存储在文件中的 PNG 图像。
use qrcode_generator::QrCodeEcc;
qrcode_generator::to_png_to_file("Hello world!", QrCodeEcc::Low, 1024, "tests/data/file_output.png").unwrap();
将任何数据编码为存储在 String 实例中的 SVG 图像。
use qrcode_generator::QrCodeEcc;
let result: String = qrcode_generator::to_svg_to_string("Hello world!", QrCodeEcc::Low, 1024, None::<&str>).unwrap();
println!("{:?}", result);
将任何数据编码为存储在文件中的 SVG 图像。
use qrcode_generator::QrCodeEcc;
qrcode_generator::to_svg_to_file("Hello world!", QrCodeEcc::Low, 1024, None::<&str>, "tests/data/file_output.svg").unwrap();
低级使用
原始图像数据
如果您想修改您的图像,可以使用 to_image
和 to_image_buffer
函数。
段
每个 to_*
函数都有一个对应的 _from_segments
函数。您可以使用不同的编码方法,如 数字、字母数字 或 二进制 来减少您的二维码矩阵/图像的大小(级别)。
use qrcode_generator::{QrCodeEcc, QrSegment};
let first = "1234567";
let second = "ABCDEFG";
let segments = [QrSegment::make_numeric(&first), QrSegment::make_alphanumeric(&second)];
let result: Vec<Vec<bool>> = qrcode_generator::to_matrix_from_segments(&segments, QrCodeEcc::Low).unwrap();
println!("{:?}", result);
更多段优化方法: magiclen/qrcode-segments-optimizer
Crates.io
https://crates.io/crates/qrcode-generator
文档
https://docs.rs/qrcode-generator
许可证
依赖项
~2.5MB
~51K SLoC