17 个版本 (破坏性更新)
0.13.3 | 2023年9月1日 |
---|---|
0.13.2 | 2022年6月1日 |
0.13.1 | 2020年6月4日 |
0.10.0 | 2020年3月26日 |
0.6.1 | 2019年7月28日 |
#86 in 图像
每月137,054 次下载
在 22 个 crate(14 个直接使用) 中使用
205KB
3.5K SLoC
pix
图像转换和合成库。
光栅图像可以廉价地转换为和从原始字节缓冲区,以实现与其他 crate 的互操作性。
支持多种图像格式
- 位深度:8-或16位整数和32位浮点数
- alpha:预乘或直接
- 伽玛:线性或sRGB
- 色彩模型
RGB
/BGR
(《红色》,绿色,蓝色)CMY
(《青色》,品红色,黄色)Gray
(《亮度)/(《相对亮度)HSV
(《色调》,饱和度,亮度)HSL
(《色调》,饱和度,亮度)HWB
(《色调》,白度,黑度)YCbCr
(用于 JPEG)Matte
(《alpha 仅)OkLab
(《亮度》,绿色/红色,蓝色/黄色)XYZ
(CIE 1931 XYZ)
HWB 颜色示例
use pix::{hwb::SHwb8, rgb::SRgb8, Raster};
let mut r = Raster::with_clear(256, 256);
for (y, row) in r.rows_mut(()).enumerate() {
for (x, p) in row.iter_mut().enumerate() {
let h = ((x + y) >> 1) as u8;
let w = y.saturating_sub(x) as u8;
let b = x.saturating_sub(y) as u8;
*p = SHwb8::new(h, w, b);
}
}
// Convert to SRgb8 color model
let raster = Raster::<SRgb8>::with_raster(&r);
合成示例
支持具有 预乘 和 线性 伽玛的图像的合成。
use pix::{ops::SrcOver, rgb::Rgba8p, Raster};
let mut r0 = Raster::with_clear(100, 100);
let r1 = Raster::with_color(5, 5, Rgba8p::new(80, 0, 80, 200));
r0.composite_raster((40, 40), &r1, (), SrcOver);