5个版本
0.0.5 | 2023年12月29日 |
---|---|
0.0.4 | 2023年12月29日 |
0.0.3 | 2023年12月28日 |
0.0.2 | 2023年2月5日 |
0.0.1 | 2023年2月5日 |
#179 in 渲染
在 mini-functions 中使用
46KB
351 行
QRC
一个用于生成和操作各种格式的二维码图像的Rust库 🦀
欢迎使用QRC
概述
二维码库(QRC)是一个功能全面的Rust库,旨在创建和操作二维码。它提供了各种功能,包括在多种格式中生成二维码、自定义颜色方案、添加图像水印等。
特性
- 生成多种格式的二维码图像,如PNG、JPG、GIF和SVG,
- 自定义颜色方案,
- 添加图像水印,
- 轻松集成到Rust项目中。
使用示例
以下是使用QRC在Rust项目中的一些基本示例
// Create a new QRCode using the QRCode::from_string() function and convert it to a PNG representation
let qrcode = QRCode::from_string(URL.to_string());
// Convert the QRCode into a PNG representation
let png = qrcode.to_png(512);
// Convert the PNG representation of the QRCode into a vector of bytes
let png_data = png.into_raw();
let png_image = ImageBuffer::<Rgba<u8>, Vec<u8>>::from_raw(21, 21, png_data).unwrap();
// Print the PNG representation of the QRCode
println!("fn to_png(): {:?}", png_image.save("qrcode.png"));
match png_image.save("qrcode.png") {
// Print the path to the PNG representation of the QRCode that was saved to a file called "qrcode.png"
Ok(_) => println!("png file created: qrcode.png"),
// Print the path to the PNG representation of the QRCode that was saved to a file called "qrcode.png"
Err(e) => println!("png file created: qrcode.png: {e}"),
}
QRC中的宏
二维码库(QRC)提供了一组宏,用于在Rust中轻松操作和生成二维码。以下是库中每个宏的文档。
1. add_image_watermark
- 描述:此宏创建一个新的QRCode结构实例,其中包含添加到现有图像中的水印图像。
- 用法:
add_image_watermark!(img, watermark);
img
:表示主图像的表达式。watermark
:表示水印图像的表达式。
2. qr_code
- 描述:使用提供的数据生成新的二维码实例。
- 用法:
qr_code!(data);
data
:表示要编码到二维码中的数据的表达式。
3. qr_code_to
- 描述:在指定的格式(PNG、JPG或GIF)和大小中创建二维码。
- 用法:
qr_code_to!(data, format, width);
data
:要编码的数据。format
:所需的输出格式("png"、"jpg"或"gif")。width
:二维码的宽度。
4. resize
- 描述:设置二维码的大小。
- 用法:
resize!(qrcode, size);
qrcode
:QRCode 实例。size
:所需二维码的大小。
5. set_encoding_format
- 描述:设置二维码中数据的编码格式。
- 用法:
set_encoding_format!(qr_code, format);
qr_code
:QRCode 实例。format
:二维码数据的编码格式。
6. overlay_image
- 描述:在二维码中心叠加一个图像。
- 用法:
overlay_image!(qr_code, image_path);
qr_code
:将被叠加图像的 QRCode 实例。image_path
:要叠加的图像文件路径。
7. batch_generate_qr
- 描述:一次生成多个二维码。
- 用法:
batch_generate_qr!(data_list);
data_list
:用于生成二维码的数据字符串向量。
8. compress_data_macro
- 描述:在将数据编码到二维码之前压缩数据。
- 用法:
compress_data_macro!(data);
data
:要压缩和编码的数据。
9. combine_qr_codes
- 描述:将多个二维码合并成一个二维码。
- 用法:
combine_qr_codes!(codes);
codes
:要合并的 QRCode 实例数组。
10. create_dynamic_qr
- 描述:生成创建后可以更新的动态二维码。
- 用法:
create_dynamic_qr!(initial_data);
initial_data
:二维码的初始数据。
11. create_multilanguage_qr
- 描述:生成支持多语言的二维码。
- 用法:
create_multilanguage_qr! {
"en" => "Hello",
"es" => "Hola",
"fr" => "Bonjour",
};
- 二维码的语言-数据对。
安装
只需几分钟即可使用 qrc
启动。
要求
qrc
需要 Rust 1.71.1 或更高版本。
文档
您可以在 lib.rs、crates.io 和 docs.rs 上找到 QRC 的详细文档。
用法 📖
要在项目中使用 qrc
,请将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
qrc = "0.0.5"
将以下内容添加到您的 main.rs
文件中
extern crate qrc;
use qrc::*;
然后您可以在应用程序代码中使用这些函数。
示例
QRC
随附一组示例,您可以使用这些示例开始。示例位于项目的 examples
目录中。要运行示例,请克隆存储库,并在项目根目录中从终端运行以下命令。
cargo run --example example
语义版本控制策略
为了使我们的发布周期更加透明,并努力保持向后兼容性,QRC
遵循 语义版本控制。
许可
本项目根据 MIT 许可证和 Apache 许可证(版本 2.0)的条款进行许可。
贡献
除非您明确声明,否则您提交给工作的任何贡献,根据 Apache-2.0 许可证定义,都应如上所述双重许可,不附加任何额外条款或条件。
致谢
感谢所有为 QRC 做出贡献的杰出贡献者,感谢他们的帮助和支持。特别感谢 Rust Reddit 社区为如何改进该项目提供了许多有用的建议。
依赖项
~5MB
~64K SLoC