#qrcode #image-format #image #barcode #color-scheme

qrc

一个用于生成和操作各种格式的二维码图像的Rust库

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 中使用

MIT/Apache

46KB
351

RustLogs (RLG) logo

QRC

一个用于生成和操作各种格式的二维码图像的Rust库 🦀

Made With Love Crates.io Lib.rs Docs.rs License

divider

欢迎使用QRC

QRC Banner

网站文档报告错误请求功能贡献指南

概述

二维码库(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.rscrates.iodocs.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 许可证定义,都应如上所述双重许可,不附加任何额外条款或条件。

divider

致谢

感谢所有为 QRC 做出贡献的杰出贡献者,感谢他们的帮助和支持。特别感谢 Rust Reddit 社区为如何改进该项目提供了许多有用的建议。

依赖项

~5MB
~64K SLoC