silvia-odwyer/photon
GitHub: silvia-odwyer/photon
Photon 是一个高性能的 Rust/WebAssembly 图像处理库,支持在原生环境和 Web 端以接近原生的速度执行滤镜、色彩调整、卷积、变换等多种图像处理操作。
Stars: 3871 | Forks: 184
# photon
> {
// Open the image (a PhotonImage is returned)
let mut img = open_image("test_image.PNG")?;
// Increment the red channel by 40
photon_rs::channels::alter_red_channel(&mut img, 40);
// Write file to filesystem.
save_image(img, "raw_image.JPG")?;
Ok(())
}
```
##### 查看更多示例
[如需更多示例,请查看关于如何原生使用 Photon 的指南。](https://silvia-odwyer.github.io/photon/guide/using-photon-natively/)
### 构建 WebAssembly 包
为了构建 WebAssembly 包,你需要 `wasm-pack`。请查看 [wasm-pack 安装指南](https://rustwasm.github.io/wasm-pack/installer/) 了解如何安装它。然后你可以运行以下命令:
```
wasm-pack build ./crate
```
## WebAssembly 入门
### 使用打包工具?
#### 安装 Photon
如果你使用 Webpack 或其他打包工具来构建项目,请通过 [npm](https://www.npmjs.com/package/@silvia-odwyer/photon) 安装 Photon:
```
npm install @silvia-odwyer/photon
```
你可以直接在任何支持 WebAssembly 的 Web 浏览器中运行 Photon,包括 Chrome、Firefox、Safari 和 Edge。
##### 在 Web 端开始使用 Photon
要开始使用,请[查看指南](https://silvia-odwyer.github.io/photon/guide/using-photon-web/)。
#### 使用 NodeJS?
如果你打算将 Photon 与 NodeJS 结合使用,你可以安装该库的 NodeJS 版本:
```
npm install @silvia-odwyer/photon-node
```
请查看 [NodeJS 教程,其中展示了如何将 Photon 与 NodeJS 结合使用](https://silvia-odwyer.github.io/photon/guide/using-photon-node/)。
#### 使用 Cloudflare Workers?
如果你使用 Cloudflare Workers,你可以安装以下库来将 Photon 与 Cloudflare Workers 结合使用:
```
npm install @cf-wasm/photon
```
完整的使用步骤在[这里](https://www.npmjs.com/package/@cf-wasm/photon)提供。
## 模块
Photon 包含一系列模块,其中包括:
- `effects`:多种图像效果,包括添加偏移量、阈值处理、双色调、日晒效果等。
- `channels`:与增加/减少图像数据的红、绿、蓝通道相关的函数。
- `transform`:调整大小、裁剪、翻转和旋转图像。
- `filters`:预设滤镜,用于改变图像的 rgb 通道。包含 20 多种滤镜。
- `conv`:Laplace、Sobel、浮雕;需要图像卷积的图像处理函数。
- `noise`:产生不同色调和色相的噪点。
- `multiple`:用于处理多个图像的模块,例如为图像添加水印等。
- `correction`:色调旋转、调整饱和度、调亮/调暗:所有这些技术均可在多种色彩空间中使用,从而产生不同的效果。
### 快速入门示例
克隆此代码库:
```
git clone https://github.com/silvia-odwyer/photon
```
运行二进制文件,它将对图像执行图像处理功能:
```
cargo run --release
```
将原始图像与输出的图像进行比较,你将看到所需的效果已成功应用。
## 最新更新
- Bayer 抖动、胶片颗粒和晕影效果 - 在 [PR #216](https://github.com/silvia-odwyer/photon/pull/216) 中添加
- 3 路调色以及用于对图像进行调整/校正的函数 - 在 [PR #214](https://github.com/silvia-odwyer/photon/pull/214) 中添加
- 适用于 WASM 的半色调效果 - 在 [PR #184](https://github.com/silvia-odwyer/photon/pull/184) 中添加
## 使用 Photon 的项目
- [OpenClaw](https://github.com/openclaw/openclaw)
- [Pi 编程代理](https://www.npmjs.com/package/@earendil-works/pi-coding-agent)
- [Next Image Processing API](https://github.com/yoeven/next-image-processing-api)
- [Hypetrigger](https://crates.io/crates/hypetrigger)
- [PhotonLab](https://watt3d.dev/photon-lab/)
如果你使用 Photon 构建了项目并希望将其包含在列表中,只需提交一个 PR!
## 有疑问?
如果你对此库有进一步的疑问,可以在 [Gitter](https://gitter.im/photonlibrary/community) 或 [Spectrum](https://spectrum.chat/photonlibrary) 上提问,我会回复你!
如果在运行/使用该库时遇到任何问题,请务必提交一个 issue,我们将不胜感激,这也有助于改进该库。
- [Spectrum](https://spectrum.chat/photonlibrary)
- [Gitter](https://gitter.im/photonlibrary/community)
## 额外说明
这些函数在设计时充分考虑了灵活性,以便可以充分利用特效和滤镜的完全定制化;对于每一个函数,只需稍微更改参数,就可以创建出数百种不同的图像效果/色调/色相,因此每一个函数都带来了充分实验的能力。
对于希望使用高级构造的开发者,库中也提供了相应的功能,例如对图像应用特效(例如:Laplace 或 Sobel)或滤镜;该库提供了一套完整的函数来实现这些操作,以及内置的滤镜和预设。
`photon` 可以被认为是 Rust `image` crate 的高级封装器,但反过来,它也包含提供对像素和通道操作低级访问的函数,非常适合希望直接处理这些数据的开发者。
## 待办事项
- 使用浏览器特定的函数为库的 WASM 版本混合图像。
- 带有漏光等效果的复古图像。
- 在无头 Web 浏览器中对库的 WebAssembly 版本进行测试
## 许可证
本项目基于 Apache 2.0 许可证授权 - 有关详细信息,请参阅 [LICENSE.md](LICENSE.md) 文件。
Photon
[]()
[](https://github.com/silvia-odwyer/photon/issues)
[](https://gitter.im/photonlibrary/community "Gitter chat")
[](https://www.npmjs.com/package/@silvia-odwyer/photon-node)
[](https://github.com/silvia-odwyer/photon/blob/master/.github/workflows/compile_wasm.yaml)
[](https://crates.io/crates/photon_rs)
[](https://github.com/silvia-odwyer/photon/blob/master/LICENSE.md)
[](https://twitter.com/silvia_923 "Follow on X/Twitter")
高性能、跨平台的 Rust/WebAssembly 图像处理库
标签:AI工具, MITM代理, Rust, WebAssembly, 可视化界面, 图像处理, 多媒体处理, 开发库, 暗色界面, 网络流量审计, 通知系统
