#图像处理 #图像 #通道 #例程 #颜色空间 #像素 #zune

zune-imageprocs

为 zune-image 提供的常用图像处理例程

7 个版本

0.5.0-rc02024 年 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 图像

Download history 45/week @ 2024-04-07 24/week @ 2024-04-14 116/week @ 2024-04-21 138/week @ 2024-04-28 37/week @ 2024-05-05 28/week @ 2024-05-12 24/week @ 2024-05-19 92/week @ 2024-05-26 67/week @ 2024-06-02 77/week @ 2024-06-09 12/week @ 2024-06-16 9/week @ 2024-06-23 62/week @ 2024-06-30 44/week @ 2024-07-07 60/week @ 2024-07-14 41/week @ 2024-07-21

每月下载量 207
用于 blade-render

MIT OR Apache-2.0 OR Zlib

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

依赖关系