#png #svg #qrcode #generate #vec

qrcode-generator

以 RAW、PNG 和 SVG 格式生成二维码矩阵和图像

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 图像

Download history 20900/week @ 2024-04-20 17786/week @ 2024-04-27 16056/week @ 2024-05-04 17360/week @ 2024-05-11 16852/week @ 2024-05-18 13524/week @ 2024-05-25 13520/week @ 2024-06-01 12233/week @ 2024-06-08 13507/week @ 2024-06-15 10415/week @ 2024-06-22 12259/week @ 2024-06-29 10524/week @ 2024-07-06 11707/week @ 2024-07-13 10481/week @ 2024-07-20 10492/week @ 2024-07-27 14453/week @ 2024-08-03

48,955 每月下载量
19 个 crate 中使用 (18 直接)

MIT 许可证

26KB
528

二维码生成器

CI

此 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_imageto_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

许可证

MIT

依赖项

~2.5MB
~51K SLoC