6个版本
0.2.1 | 2019年9月7日 |
---|---|
0.2.0 | 2019年4月27日 |
0.1.3 | 2019年4月16日 |
在嵌入式开发中排名657
120KB
2.5K SLoC
Cichlid
一个简单的Rust库,用于管理RGB着色。也支持no-std
环境。
目前这个库主要面向嵌入式系统使用,但也包含了一些更通用的有用API。
-
快速
u8
和u16
数学 — Cichlid包含缩放、调暗和调亮单字节和双字节值的函数。还实现了基本三角函数(正弦、余弦)。 -
HSV和RGB支持 — 通过
HSV
和ColorRGB
结构提供对每个颜色的完全控制。还实现了从HSV
到ColorRGB
的多种转换方式。 -
轴向(两点)颜色渐变 — 创建任意两个颜色之间的平滑过渡,可以设置任意数量的步骤。
-
功耗估算 — 使用实现
PowerEstimator
特征的struct进行功耗估算。
这个库还处于初级阶段,因此可能缺乏文档和严格的测试。
示例
通用颜色操作
use cichlid::{HSV, ColorRGB};
let red = ColorRGB::Red;
let blue = ColorRGB::Blue;
let mut purple = red + blue;
assert_eq!(purple, ColorRGB::new(255, 0, 255));
purple.scale(128); // Scale by half
assert_eq!(purple, ColorRGB::new(128, 0, 128));
purple *= 2; // Multiple all components by two
assert_eq!(purple, red + blue);
使用HSV
(色调、饱和度、亮度)并将其转换为ColorRGB
use cichlid::{HSV, ColorRGB};
let red_hsv = HSV::new(0, 255, 255);
let red_rgb = ColorRGB::from(red_hsv);
assert_eq!(red_rgb, ColorRGB::Red);
创建渐变非常简单,只需导入trait并调用方法
use cichlid::{HSV, ColorRGB, GradientDirection, prelude::*};
let mut colors = [ColorRGB::Black; 100];
let start = HSV::new(0, 255, 255);
let end = HSV::new(100, 255, 180);
colors.gradient_fill(start, end, GradientDirection::Longest);
贡献
欢迎所有形式的贡献!打开PR来贡献一些改进。查看问题标签页以了解需要帮助的内容。
许可证
Cichlid根据MIT许可证分发。有关详细信息,请参阅LICENSE-MIT。打开pull请求被视为接受这些许可条款。