ITADN
awxkee/colorutils-rs
awxkee/colorutils-rs · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Rust 颜色处理与转换工具。

其目标是为最常见的转换路径提供支持,并实现高性能的 SIMD 优化选项。

现有的 SIMD 快速路径通常比传统实现快 5-10 倍。

支持以下格式之间的转换:

  • Rgb/Rgba/Rgba1010102/Rgb565/RgbF16
  • HSL
  • HSV
  • CIE LAB
  • CIE LUV
  • CIE LCh
  • XYZ
  • Sigmoidal
  • Oklab
  • Oklch
  • Jzazbz
  • Jzczhz
  • lαβ (l-alpha-beta)
  • XYB

性能

目前已有一些预构建函数可供使用。

srgb_to_lab(src_bytes, width * components, &mut lab_store, width * 3 * std::mem::size_of::<f32>() as u32, width, height);

预构建的解决方案其运行速度比简单的实现方式快约 3-5 倍。如果您的场景适合使用预构建函数,那么应当选用它。 速度的提升得益于 AVX、NEON 和 SSE 技术;如果您禁用了这些功能或使用的 CPU 不具备这些特性,那么将无法获得任何性能优势。

此外,还支持 x86-64 架构的 fma 目标功能。

若要正确编译 avx2 指令,必须在编译时激活 +avx2 目标功能。即便使用运行时动态调度,这一步也同样重要。

本项目采用以下任一许可证进行授权:

  • BSD-3-Clause 许可证(详见 LICENSE])
  • Apache License, Version 2.0 许可证(详见 LICENSE])

您可根据需求选择合适的许可证。