38be82973e
- PNG 渲染:RgbaImage 上使用 imageops::overlay 叠加 logo - SVG 渲染:base64 编码 logo 嵌入 <image> 标签 - QrCode::to_png_bytes / to_svg 新增 Option<logo_bytes> 参数 - Logo 默认占 QR 区域 25%,建议配合 H 级纠错使用
28 lines
800 B
Rust
28 lines
800 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, None)?;
|
|
println!("版本 10 QR 码 PNG: {} 字节", png.len());
|
|
|
|
// 反转色终端输出(白底黑码 → 黑底白码)
|
|
println!("\n{}", qr.to_ascii(true));
|
|
|
|
Ok(())
|
|
}
|