#嵌入式图形 #图形 #像素 #const泛型

无std embedded-canvas

在硬件显示前,轻松在画布上绘制任何内容

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

MIT/Apache

40KB
500

嵌入式-canvas

sponsor-uscrates-iodocs-rs

canvas - 用于绘画的布或框

注意: 此crate仍在开发中,版本之间可能会有破坏性更改。

嵌入式画布 是一个方便的库,用于 嵌入式图形,并提供了 CanvasCanvasAt,您可以在嵌入式显示上轻松绘制任何内容,然后再绘制像素。

基于 嵌入式图形核心嵌入式图形(参见 库功能 中的 transform 功能)。

此库是 no_std,并且具有 2 组画布

  • CanvasCanvasAt - 需要 alloc 功能
  • CCanvasCCanvasAt - 不需要 alloc 功能,因为它们使用常量泛型。

此库中画布的主要优点是

  1. 透明度 - 未绘制的像素不会覆盖显示上的像素。

Example: Transparency

示例:透明度 - 在显示上已经绘制了一个方形的区域,然后在上面绘制了一个圆。

  1. 裁剪 - 能够裁剪画布,只留下您想要绘制在显示上的部分。这在您想部分显示文本、图形和图像时非常有用。

Example: Cropping text

示例:裁剪文本 - 左侧绘制了完整的画布内容,而右侧只裁剪并绘制了部分内容。

如何使用画布

您可以处理 两个 主要画布

Canvas / CCanavas

一个可以在原点 Point::<:zero() 上绘制的画布。该画布的位置对于提供的显示尚未设置。

绘制后,使用以下方法确定其在显示上的位置:

  • Canvas::<:place_at(top_left: Point)::> CanvasAt(具有 alloc 功能)或 CCanvas::<:place_at(top_left: Point)::> CCanvasAt
  • Canvas::<:place_center(center: Point)::> CanvasAt(具有 alloc 功能)或 CCanvas::<:place_center(center: Point)::> CCanvasAt

CanvasAt / CCanvasAt

CanvasAt/CCanvasAt 是一种可以在指定位置绘制到显示上的画布类型(因此得名 CanvasAt/CCanvasAt)。

使用 CanvasAt/CCanavasAt 的有两种方法

  1. 直接在显示上的指定位置放置 CanvasAt/CCanavasAt 并在其中绘制。
  2. 创建一个 Canvas/CCanvas,当准备好在显示上绘制时,使用以下方法将 Canvas/CCanvas 放置在指定位置:
    • Canvas::place_at(top_left: Point) -> CanvasAt (具有 alloc 功能) 和 CCanvas::place_at(top_left: Point) -> CCanvasAt
    • Canvas::place_center(center: Point) -> CanvasAt (具有 alloc 功能) 和 CCanvas::place_center(center: Point) -> CCanvasAt

箱子特性

许可证

根据您的选择,许可协议为 Apache License, Version 2.0MIT license

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在此项目中的贡献,都将如上所述双重许可,不附加任何额外条款或条件。

依赖项

~0.4–1.1MB
~15K SLoC