#svg #render #raster

bin+lib raqote-usvg-render

usvg 的 raqote 渲染器

2 个不稳定版本

0.12.0 2020年11月13日
0.11.0 2020年11月13日

#684 in 图像

MPL-2.0 许可证

97KB
2.5K SLoC

raqote 后端用于渲染 usvg 数据

Crate

usvg 渲染实现,使用 raqote 库。

警告:raqote 库仍在开发中,相对不稳定。您应该优先考虑其他后端。

此后端故意不提供 C API。

构建

目前,这是唯一一个使用基于 Rust 的 2D 库的后端,因此构建过程相对简单。

遗憾的是,您仍然需要一个 C++ 编译器来构建 harfbuzz

在 Windows 上使用 MSVC

安装 stable-x86_64-pc-windows-msvc Rust 目标。

使用 x64 Native Tools Command Prompt for VS 2017 命令行构建

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

cargo.exe build --release

在 Windows 上使用 MSYS2

安装 stable-x86_64-pc-windows-gnu Rust 目标。然后

pacman -S mingw-w64-x86_64-gcc
rustup default stable-x86_64-pc-windows-gnu

cargo build --release

您可以使用相同的 i686 目标。

在 Linux 上

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

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

sudo apt install libharfbuzz-dev

构建 resvg

cargo build --release

在 macOS 上

cargo build --release

运行时依赖

harfbuzz 在 Linux 上。在其他操作系统上它将被静态构建。

运行 resvg CLI

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

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

运行示例

一个简单的 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.

依赖

~6MB
~118K SLoC