7 个版本
0.5.0-rc0 | 2024 年 4 月 26 日 |
---|---|
0.4.15 | 2024 年 2 月 17 日 |
0.4.14 | 2024 年 1 月 15 日 |
0.4.13 | 2023 年 12 月 12 日 |
0.4.11 | 2023 年 11 月 17 日 |
#474 in 图像
每月下载量 207
用于 blade-render
705KB
13K SLoC
zune-imageprocs
一个用于低级图像处理例程的库
它们处理原始像素 (T
),并注重速度和安全性。
警告
一些过滤器处于 alpha 阶段,一些已损坏,不要使用带有 Broken
标签的过滤器
用法
将 crate 添加到您的依赖项中,例如 cargo add zune-imageprocs
之后,可以使用处理例程,因为它们实现了 zune-image
OperationsTrait
,可以在支持它们的地方调用它们
例如,要增加图像的曝光度
use zune_core::colorspace::ColorSpace;
use zune_image::errors::ImageErrors;
use zune_image::image::Image;
use zune_image::traits::OperationsTrait;
use zune_imageprocs::exposure::Exposure;
fn main()->Result<(),ImageErrors> {
// create a 100x100 grayscale image
let mut img = Image::from_fn::<u16, _>(100, 100, ColorSpace::Luma, |x, y, pix| {
pix[0] = ((x + y) % 65536) as u16;
});
// increase each pixels strength by 2
Exposure::new(2.0, 0.0).execute(&mut img)?;
// write to a file
img.save("hello.png")?;
}
功能
-
portable-simd
:这添加了对 portable simd 的支持,需要 nightly 编译器。一些例程是用 portable simd 编写的,因此这可以加快一些计算。- 默认禁用
-
threads
:在图像过滤器上添加对多线程的支持,一些过滤器可以按通道独立运行,特别是计算密集型过滤器,这可以启用。在没有多线程的平台(例如wasm
)上,应禁用此功能- 默认启用
基准测试
库中的大多数例程都可以进行基准测试,但需要 nightly 编译器
要测试大多数例程的速度,请运行
cargo bench --features=benchmarks