0.1.0 |
|
---|
#20 在 #blur
17KB
235 行
stackblur
快速高斯模糊近似。
是 StackBlur
的 Rust 实现,由 Mario Klingemann 开发。非常快速且精确的高斯模糊近似。基于 Enrique López Mañas 的 Java 实现,Apache 2.0 许可证。
注意
stackblur 目前正在积极开发中,版本之间可能存在破坏性更改。发布将稳定在 1.0.0
版本。
使用方法
use std::num::{NonZeroU8, NonZeroUsize};
use stackblur::blur;
const RED: u32 = 0xffff0000;
const GREEN: u32 = 0xff00ff00;
const BLUE: u32 = 0xff0000ff;
// load your image, u32 RGBA pixels
let mut pixels: Vec<u32> = vec![
RED, GREEN, GREEN, RED,
GREEN, RED, BLUE, GREEN,
GREEN, BLUE, RED, GREEN,
RED, GREEN, GREEN, RED,
];
// blur!
blur(
&mut pixels,
NonZeroUsize::new(4).unwrap(),
NonZeroUsize::new(4).unwrap(),
NonZeroU8::new(1).unwrap(),
);
示例
所有示例以半径 15 在两个方向上进行了模糊处理。
将 RGBA PNGs 添加到 samples/input
并运行 cargo run --release --example samples
来查看您的示例!
编码风格
遵循 rustfmt
和 Rust 2018 规范,以及 clippy
检查。
贡献
欢迎提交拉取请求。
除非您明确表示,否则任何有意提交并包含在本作品中的贡献,根据 Apache-2.0 许可证定义,均应双重许可,许可条款为 MIT 许可证和 Apache 许可证(版本 2.0)。
版本
此项目遵循 语义版本控制。
更改记录在 更改日志 中。
请参阅 标签 以获取可用的发布版本。
作者
请参阅 贡献者列表。
许可证
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。
致谢
- Mario Klingemann 为原始 stackblur 算法。
- Enrique López Mañas 为此代码所基于的 Java 端口。
- 许多 Rust Discord 的成员在回答问题和获得灵感方面提供了帮助。
想在这里看到你的名字吗?请联系我或者开启一个PR!