4个版本 (2个破坏性更新)

0.10.0 2020年6月19日
0.9.1 2020年6月3日
0.9.0 2020年1月18日
0.8.0 2019年8月17日

图形API 中排名第688

MPL-2.0 许可证

790KB
19K SLoC

resvg的Skia后端

resvg 后端实现,使用Skia 库。

构建

Skia的构建过程并不简单,因此我们不自动构建它。调用者应手动构建它并设置相应的环境变量

  • SKIA_DIR 应指向包含Skia include 目录的Skia目录。
  • SKIA_LIB_DIR 应指向包含 skia.dll 的Skia目录。

此外,Skia没有稳定的API,因此我们只能支持固定版本。目前是m76。

在Windows上使用MSVC

安装

  • stable-x86_64-pc-windows-msvc Rust 目标。
  • Skia本身(我们假设您已经构建了一个)。

SKIA_DIR 应指向包含Skia include 目录的Skia目录。SKIA_LIB_DIR 应指向包含 skia.dll 的Skia目录。

使用 x64 Native Tools Command Prompt for VS 2017 命令提示符shell进行构建

set PATH=%userprofile%\.cargo\bin;%PATH%
set SKIA_DIR=path
set SKIA_LIB_DIR=path
rustup.exe default stable-x86_64-pc-windows-msvc

cargo.exe build --release

在Linux上

我们假设您已经构建了Skia本身。

使用您发行版的包管理器安装 harfbuzz

在Ubuntu上,您可以通过以下方式安装它:

sudo apt install libharfbuzz-dev

构建 resvg

SKIA_DIR=path SKIA_LIB_DIR=path cargo build --release

在macOS上

我们假设您已经构建了Skia本身。

SKIA_DIR=path SKIA_LIB_DIR=path cargo build --release

运行时依赖

resvg-skia 只依赖于Skia本身。

在Linux上,还需要 harfbuzz

运行 resvg CLI

cargo run --release -- in.svg out.png

生成的二进制文件可以在以下位置找到:target/release/resvg-skia

运行示例

一个简单的 SVG 到 PNG 转换器

cargo run --example minimal -- in.svg out.png

使用手动构建的 SVG 渲染树渲染图像

cargo run --example custom_rtree

在输入 SVG 上的所有形状周围绘制边界框

cargo run --example draw_bboxes -- bboxes.svg bboxes.png -z 4

许可

MPLv2.0.

依赖项

约 4MB
约 74K SLoC