ce8063431e
- 为 core 公开 API 添加完整 doc comments(rustdoc 可用) - 新增 .editorconfig / CONTRIBUTING / CODE_OF_CONDUCT / SECURITY - 新增 Issue 模板(bug + feature)+ PR 模板 - 新增 3 个代码示例(examples/) - 更新 Cargo.toml 元数据(description/repository/keywords/categories/MSRV) - 更新 README + CHANGELOG
28 lines
794 B
Rust
28 lines
794 B
Rust
//! QRGen 自定义配置:强制指定版本、模块大小
|
|
//!
|
|
//! 运行: `cargo run --example custom_config`
|
|
|
|
use qr_core::qr::{QrCode, QrConfig, VersionMode};
|
|
use qr_core::version::EcLevel;
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
// 强制使用版本 10(57×57 模块)
|
|
let config = QrConfig {
|
|
level: EcLevel::Q,
|
|
version: VersionMode::Fixed(10),
|
|
margin: 4,
|
|
};
|
|
|
|
let qr = QrCode::encode("固定版本 10 的 QR 码", config)?;
|
|
assert_eq!(qr.version.0, 10);
|
|
|
|
// 导出大尺寸 PNG(每个模块 8 像素)
|
|
let png = qr.to_png_bytes(8)?;
|
|
println!("版本 10 QR 码 PNG: {} 字节", png.len());
|
|
|
|
// 反转色终端输出(白底黑码 → 黑底白码)
|
|
println!("\n{}", qr.to_ascii(true));
|
|
|
|
Ok(())
|
|
}
|