#image #text-image #social #font #preview #si #share

si-img

一个简单轻量级的Rust库,用于生成社交媒体预览图像

10个不稳定版本 (3个重大变更)

0.4.0 2023年12月27日
0.3.3 2023年11月1日
0.3.1 2023年10月31日
0.2.1 2023年9月20日
0.1.2 2023年9月12日

图像类别中排名255

Download history 132/week @ 2024-03-10 3/week @ 2024-03-17 5/week @ 2024-03-31 1/week @ 2024-05-26

每月下载82

MIT许可证

20KB
336

Si Crate - 在Rust中进行简单图像处理

Si crate(发音为“ess-eye”)是一个轻量且易于使用的Rust库,用于创建社交媒体分享图像(例如网站预览)。

查看examples中的示例以开始。

安装

要在Rust项目中使用Si crate,请在您的Cargo.toml文件中将它添加为依赖项

[dependencies]
si-img = "0.4.0"

入门指南

要开始使用Si crate,导入必要的模块

use si_img::{SiImage, SiFont, TextOptions};

创建字体

您可以使用SiFont::from_network构造函数创建自定义字体。您需要提供一个字体URL。以下是一个示例

let font = SiFont::from_network("FONT_URL"); // Synchronously (blocking, use SiFont::from_network_async for async fetching)

创建图像

接下来,使用SiImage::from_network构造函数创建图像。您需要提供一个图像URL

let img = SiImage::from_network("Image_URL"); // Synchronously (blocking, use SiImage::from_network_async for async fetching)

创建文本选项

从v0.4版开始,需要文本选项。

let text_options = TextOptions::default();

向图像添加文本

现在,您可以使用text方法向图像添加文本。指定文本、缩放、x和y坐标、可选颜色(或使用None作为默认颜色),以及您之前创建的字体

img.text("Hello Cool User", 48.00, 32.0, 20.0, Some("#00ffff".to_string()), &font, &text_options);

获取图像字节

最后,您可以使用to_bytes方法检索(解码)图像作为字节

let bytes = img.to_bytes();

示例

以下是一个将所有内容组合在一起的完整示例

use si_img::{SiImage, SiFont};

fn main() {
    // Create a font
    let font = SiFont::from_network("FONT_URL");

    // Create an image
    let img = SiImage::from_network("Image_URL");

    // Add text to the image
    img.text("Hello Cool User", 48.00, 32.0, 20.0, Some("#00ffff".to_string()), &font);

    // Get image bytes
    let bytes = img.to_bytes();

    // Do something with the image bytes (e.g., save to a file or send over a network)
}

这就完成了!您现在有基础知识可以开始在Rust项目中使用Si crate进行简单的图像处理。在构建图像处理应用程序时,请随意探索crate提供的更多功能和自定义选项。

注意:此crate是基于WebAssembly的Si.js库的基础(用于Node.js和Deno)。

依赖项

~17–29MB
~310K SLoC