36个版本

0.4.1 2024年8月11日
0.4.0 2024年4月1日
0.3.12 2024年3月31日
0.3.7 2023年10月19日
0.1.2 2021年4月30日

#22 in 渲染

Download history 11/week @ 2024-05-20 13/week @ 2024-05-27 4/week @ 2024-06-03 15/week @ 2024-06-10 69/week @ 2024-07-08 8/week @ 2024-07-29 69/week @ 2024-08-05 48/week @ 2024-08-12

每月125次下载
用于 surf_n_term

MIT 协议

285KB
7.5K SLoC

光栅化器

Build Status MIT License Crate API Docs

这是一个功能齐全的2D光栅化器和SVG路径解析器。

功能

  • 解析SVG路径格式
  • 渲染椭圆弧、线条、三次/二次贝塞尔曲线
  • 曲线偏移
  • 线性和对数渐变

使用示例

examples文件夹中有一个非常简单的二进制文件,可以用于渲染SVG路径

$ cargo run --release --example rasterize -- data/squirrel.path -w 512 -o squirrel.bmp

这将产生

squirrel


lib.rs:

支持SVG路径解析/生成/操作的简单2D库。

主要功能

  • SVG路径解析和生成
  • 抗锯齿渲染
  • 路径偏移 Path::stroke
  • 使用 GradLinearGradRadial 的线性和对数渐变
  • 如果设置了 serde 功能,则集成Serde(默认启用)

概述

主要类型是

  • Path - 与SVG路径具有相同的概念,构建它的最简单方法是使用Path::builder,或者可以从SVG路径解析str::parse。路径可以用Path::stroke描边,生成表示轮廓的新路径。
  • Scene - 代表尚未渲染的图像,多个场景可以组合成更复杂的场景。这可能是渲染有用内容的最简单方式。参见 examples/simple.rs 以获取一个简单示例。它还可以(反)序列化,例如,查看 data/firefox.scene
  • Paint - 可用于填充路径的颜色/渐变。
  • Image - 2D矩阵,可以存储图像并将其用作渲染的目标。图像还可以通过 Image::write_bmp 写入文件,或者启用 png 功能时以 Image::write_png 写入 PNG。

依赖关系

~0.8–2MB
~39K SLoC