1 个稳定版本

使用旧的 Rust 2015

1.8.1 2023 年 8 月 20 日

865图像 中排名

Download history 345/week @ 2024-04-20 646/week @ 2024-04-27 362/week @ 2024-05-04 756/week @ 2024-05-11 551/week @ 2024-05-18 558/week @ 2024-05-25 893/week @ 2024-06-01 655/week @ 2024-06-08 508/week @ 2024-06-15 739/week @ 2024-06-22 336/week @ 2024-06-29 529/week @ 2024-07-06 378/week @ 2024-07-13 415/week @ 2024-07-20 420/week @ 2024-07-27 356/week @ 2024-08-03

1,625 每月下载量
用于 agb

MIT 许可证

59KB
831

QR 码生成库 - Rust,无堆栈

简介

本项目旨在成为最好的、最清晰的 QR 码生成库。主要目标是灵活的选项和绝对正确性。次要目标是紧凑的实现大小和良好的文档注释。

主页带有实时 JavaScript 演示、详细描述和竞争对手比较: https://www.nayuki.io/page/qr-code-generator-library

功能

核心功能

  • 与竞争对手库相比,代码更短,但文档注释更多
  • 支持按照 QR 码模型 2 标准编码所有 40 个版本(大小)和所有 4 个纠错等级
  • 输出格式:QR 符号的原始模块/像素
  • 比其他实现更准确地检测类似定位图案的惩罚模式
  • 在比普通文本更少的空间内编码数字和特殊字母数字文本
  • 完全避免堆栈分配(例如 std::vec::Vec),而是依赖于调用者提供的适当大小的缓冲区和固定大小的堆栈分配
  • 开源代码,采用宽松的 MIT 许可证

手动参数

  • 用户可以指定允许的最小和最大版本号,然后库将自动选择适合数据的范围内的最小版本
  • 用户可以手动指定掩码模式,否则库将自动评估所有 8 个掩码并选择最佳者
  • 用户可以指定绝对纠错等级,或者允许库在增加版本号的情况下提高它
  • 用户可以手动创建数据段列表并添加 ECI 段

有关 QR 码技术和该库设计的更多信息,请参阅项目主页。

示例

extern crate qrcodegen;
use qrcodegen::Mask;
use qrcodegen::QrCode;
use qrcodegen::QrCodeEcc;
use qrcodegen::Version;

// Text data
let mut outbuffer  = vec![0u8; Version::MAX.buffer_len()];
let mut tempbuffer = vec![0u8; Version::MAX.buffer_len()];
let qr = QrCode::encode_text("Hello, world!",
    &mut tempbuffer, &mut outbuffer, QrCodeEcc::Medium,
    Version::MIN, Version::MAX, None, true).unwrap();
let svg = to_svg_string(&qr, 4);  // See qrcodegen-demo

// Binary data
let mut outbuffer   = vec![0u8; Version::MAX.buffer_len()];
let mut dataandtemp = vec![0u8; Version::MAX.buffer_len()];
dataandtemp[0] = 0xE3;
dataandtemp[1] = 0x81;
dataandtemp[2] = 0x82;
let qr = QrCode::encode_binary(&mut dataandtemp, 3,
    &mut outbuffer, QrCodeEcc::High,
    Version::new(2), Version::new(7),
    Some(Mask::new(4)), 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-no-heap/examples/qrcodegen-demo.rs .

无运行时依赖