17 个版本

0.6.2 2023 年 1 月 30 日
0.6.0 2022 年 11 月 24 日
0.5.0 2021 年 11 月 12 日
0.4.0 2021 年 3 月 28 日
0.1.1 2020 年 5 月 21 日

#499图形 API

Download history 1140/week @ 2024-04-23 1031/week @ 2024-04-30 957/week @ 2024-05-07 941/week @ 2024-05-14 1144/week @ 2024-05-21 1021/week @ 2024-05-28 822/week @ 2024-06-04 702/week @ 2024-06-11 914/week @ 2024-06-18 963/week @ 2024-06-25 201/week @ 2024-07-02 633/week @ 2024-07-09 866/week @ 2024-07-16 885/week @ 2024-07-23 838/week @ 2024-07-30 724/week @ 2024-08-06

3,437 每月下载量
57 个 Crates 中使用 (直接使用 3 个)

MIT/Apache

415KB
5K SLoC

image of piet logo

Piet:一个 2D 图形抽象

Crates.io Documentation Build Status

跨平台 2D 图形。

Piet 项目包括一个核心 crate (piet),它描述了一个 2D 图形 API,以及多个 "后端",这些后端在特定平台的内置 2D 图形系统上实现该 API。这允许在多个平台上使用相同的绘图代码,而无需捆绑完整的 2D 渲染器。

此 crate 的动机在以下 博客文章 中阐述。它被用作跨平台 GUI 工具包 Druid 的基础。

Bézier 路径表示和几何学的配套工具是 kurbo

入门

运行示例需要检出子模块。从根目录运行

git submodule update --init

贡献

Piet 处于维护模式。

Piet 已基本稳定,原始开发者没有计划添加重大 API 功能。欢迎提交错误修复和性能改进。

如果有一个您想添加的重要功能,可以进行讨论。为了考虑新的功能,必须有一个在至少 coregraphics、direct2d 和 cairo 后端中实现该功能的计划,并且实际实现应包括至少这些后端中的两个。

对于问题和讨论,我们在 xi.zulipchat.com 的 #piet 流下使用 zulip 聊天实例。

后端

为了跨平台使用,piet-common 库重新导出当前目标最合适的实现。

piet-cairo crates.io

piet-cairo 库依赖于 cairo 库。测试 cairo 后端的一个简单方法是运行 cargo run --example test-picture 0,这将生成一个名为 cairo-test-0.png 的图像文件。

piet-coregraphics crates.io

piet-coregraphics 库仅在 macOS 上工作。测试 coregraphics 后端的一个简单方法是运行 cargo run --example test-picture 0,这将生成一个名为 coregraphics-test-0.png 的图像文件。

piet-direct2d crates.io

piet-direct2d 库仅在 Windows 上工作。测试 direct2d 后端的一个简单方法是运行 cargo run --example test-picture 0,这将生成一个名为 d2d-test-0.png 的图像文件。

piet-svg

piet-web

灵感

Piet 的接口主要受到 Skia 图形库 以及 C++ 2D 图形 api 建议书 的启发,尽管 piet 旨在更加轻量级和模块化。

名称

这个库以 Piet Mondrian 命名。它是抽象的,旨在用于绘制许多矩形。

依赖项

~1.5MB
~29K SLoC