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 渲染
每月125次下载
用于 surf_n_term
285KB
7.5K SLoC
光栅化器
这是一个功能齐全的2D光栅化器和SVG路径解析器。
功能
- 解析SVG路径格式
- 渲染椭圆弧、线条、三次/二次贝塞尔曲线
- 曲线偏移
- 线性和对数渐变
使用示例
examples文件夹中有一个非常简单的二进制文件,可以用于渲染SVG路径
$ cargo run --release --example rasterize -- data/squirrel.path -w 512 -o squirrel.bmp
这将产生
lib.rs
:
支持SVG路径解析/生成/操作的简单2D库。
主要功能
- SVG路径解析和生成
- 抗锯齿渲染
- 路径偏移
Path::stroke
- 使用
GradLinear
和GradRadial
的线性和对数渐变 - 如果设置了
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