8个稳定版本
使用旧的Rust 2015
1.8.0 | 2022年4月17日 |
---|---|
1.7.0 | 2021年8月8日 |
1.6.0 | 2020年3月5日 |
1.5.0 | 2019年7月15日 |
1.2.1 | 2017年9月6日 |
#312 in 图像
64,071 每月下载量
在 49 个crate中(14个直接) 使用
50KB
713 行
QR码生成库 - Rust
简介
此项目旨在成为最佳的、最清晰的QR码生成库。主要目标是灵活的选项和绝对正确性。次要目标是紧凑的实现大小和良好的文档注释。
包含实时JavaScript演示、详细描述和竞争对手比较的主页:https://www.nayuki.io/page/qr-code-generator-library
特性
核心特性
- 与竞争库相比,代码更短,但文档注释更多
- 支持编码所有40个版本(大小)和所有4个纠错等级,符合QR码模型2标准
- 输出格式:QR符号的原始模块/像素
- 比其他实现更准确地检测类似定位符的惩罚模式
- 在比通用文本更小的空间内编码数字和特殊字母数字文本
- 开源代码,MIT许可证下
手动参数
- 用户可以指定允许的最小和最大版本号,然后库将自动选择适合数据的范围内最小的版本
- 用户可以手动指定掩码模式,否则库将自动评估所有8个掩码并选择最优的一个
- 用户可以指定绝对纠错等级,或允许库在它不会增加版本号的情况下提升它
- 用户可以手动创建数据段列表并添加ECI段
有关QR码技术和此库设计的更多信息,请参阅项目主页。
示例
extern crate qrcodegen;
use qrcodegen::Mask;
use qrcodegen::QrCode;
use qrcodegen::QrCodeEcc;
use qrcodegen::QrSegment;
use qrcodegen::Version;
// Simple operation
let qr = QrCode::encode_text("Hello, world!",
QrCodeEcc::Medium).unwrap();
let svg = to_svg_string(&qr, 4); // See qrcodegen-demo
// Manual operation
let text: &str = "3141592653589793238462643383";
let segs = QrSegment::make_segments(text);
let qr = QrCode::encode_segments_advanced(&segs,
QrCodeEcc::High, Version::new(5), Version::new(5),
Some(Mask::new(2)), false).unwrap();
for y in 0 .. qr.size() {
for x in 0 .. qr.size() {
(... paint qr.get_module(x, y) ...)
}
}
更完整的示例集:https://github.com/nayuki/QR-Code-generator/blob/master/rust/examples/qrcodegen-demo.rs。