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 图像

Download history • Rust 包仓库 2756/week @ 2024-04-21 • Rust 包仓库 3215/week @ 2024-04-28 • Rust 包仓库 4872/week @ 2024-05-05 • Rust 包仓库 14462/week @ 2024-05-12 • Rust 包仓库 13377/week @ 2024-05-19 • Rust 包仓库 22274/week @ 2024-05-26 • Rust 包仓库 29106/week @ 2024-06-02 • Rust 包仓库 16157/week @ 2024-06-09 • Rust 包仓库 12026/week @ 2024-06-16 • Rust 包仓库 6874/week @ 2024-06-23 • Rust 包仓库 4241/week @ 2024-06-30 • Rust 包仓库 26864/week @ 2024-07-07 • Rust 包仓库 37141/week @ 2024-07-14 • Rust 包仓库 34634/week @ 2024-07-21 • Rust 包仓库 40822/week @ 2024-07-28 • Rust 包仓库 23279/week @ 2024-08-04 • Rust 包仓库

每月137,054 次下载
22 个 crate(14 个直接使用) 中使用

MIT/Apache

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);

Colors

合成示例

支持具有 预乘线性 伽玛的图像的合成。

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);

文档

https://docs.rs/pix

无运行时依赖