6个版本
| 0.3.1 | 2024年5月11日 |
|---|---|
| 0.3.0 | 2023年11月6日 |
| 0.2.0 | 2022年8月8日 |
| 0.1.2 | 2022年6月24日 |
| 0.1.0 | 2022年5月17日 |
#160 in 嵌入式开发
用于 嵌入式UI
40KB
500 行
嵌入式-canvas
canvas - 用于绘画的布或框
注意: 此crate仍在开发中,版本之间可能会有破坏性更改。
嵌入式画布 是一个方便的库,用于 嵌入式图形,并提供了 Canvas 和 CanvasAt,您可以在嵌入式显示上轻松绘制任何内容,然后再绘制像素。
基于 嵌入式图形核心 和 嵌入式图形(参见 库功能 中的 transform 功能)。
此库是 no_std,并且具有 2 组画布
Canvas和CanvasAt- 需要alloc功能CCanvas和CCanvasAt- 不需要alloc功能,因为它们使用常量泛型。
此库中画布的主要优点是
- 透明度 - 未绘制的像素不会覆盖显示上的像素。

示例:透明度 - 在显示上已经绘制了一个方形的区域,然后在上面绘制了一个圆。
- 裁剪 - 能够裁剪画布,只留下您想要绘制在显示上的部分。这在您想部分显示文本、图形和图像时非常有用。

示例:裁剪文本 - 左侧绘制了完整的画布内容,而右侧只裁剪并绘制了部分内容。
如何使用画布
您可以处理 两个 主要画布
Canvas / CCanavas
一个可以在原点 Point::<:zero() 上绘制的画布。该画布的位置对于提供的显示尚未设置。
绘制后,使用以下方法确定其在显示上的位置:
Canvas::<:place_at(top_left: Point)::> CanvasAt(具有alloc功能)或CCanvas::<:place_at(top_left: Point)::> CCanvasAtCanvas::<:place_center(center: Point)::> CanvasAt(具有alloc功能)或CCanvas::<:place_center(center: Point)::> CCanvasAt
CanvasAt / CCanvasAt
CanvasAt/CCanvasAt 是一种可以在指定位置绘制到显示上的画布类型(因此得名 CanvasAt/CCanvasAt)。
使用 CanvasAt/CCanavasAt 的有两种方法
- 直接在显示上的指定位置放置
CanvasAt/CCanavasAt并在其中绘制。 - 创建一个
Canvas/CCanvas,当准备好在显示上绘制时,使用以下方法将Canvas/CCanvas放置在指定位置:Canvas::place_at(top_left: Point) -> CanvasAt(具有alloc功能) 和CCanvas::place_at(top_left: Point) -> CCanvasAtCanvas::place_center(center: Point) -> CanvasAt(具有alloc功能) 和CCanvas::place_center(center: Point) -> CCanvasAt
箱子特性
default特性 -transformalloc- 启用Canvas和CanvasAt。transform- 启用CanvasAt的embedded_graphics::transform::Transform特性实现。
许可证
根据您的选择,许可协议为 Apache License, Version 2.0 或 MIT license。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在此项目中的贡献,都将如上所述双重许可,不附加任何额外条款或条件。
依赖项
~0.4–1.1MB
~15K SLoC