5 个不稳定版本
0.3.2 | 2023 年 2 月 9 日 |
---|---|
0.3.1 | 2021 年 4 月 29 日 |
0.3.0 | 2021 年 4 月 9 日 |
0.2.0 | 2020 年 3 月 19 日 |
0.1.0 | 2019 年 12 月 31 日 |
#147 in 图像
953 每月下载量
用于 6 crate
255KB
4K SLoC
高性能、跨平台 Rust/WebAssembly 图像处理库
📝 目录
Photon 是一个高性能的 Rust 图像处理库,它可以编译成 WebAssembly,允许在本地和网页上进行安全、快速的图像处理。
特性
- 快速:Photon 的性能优于包括 ImageMagick 在内的所有最快的库。在网页上,它的高性能允许在网页上实现接近本地速度的图像处理。即将提供基准测试。
- 使用 JS 调用:想在使用网页或 Node 时使用 Photon?使用一个简单的 npm 包,你就可以开始使用了。利用 WebAssembly 的所有好处,无需任何成本即可实现抽象。
- 本地使用:对于命令行应用程序、原生照片编辑应用程序等,Photon 的核心代码库是用 Rust 编写的,允许跨平台开发。
实时演示
查看 官方 WASM 演示。
入门
入门指南
查看 Photon 的 入门指南,包括教程、安装说明等
文档
📚 文档
查看 官方文档。
Photon 应用实例
功能
提供 96+ 个可自定义的函数。
调整大小、转换、校正和过滤图像:应用您需要的任何效果。
包括以下功能
- 图像校正:色调旋转、锐化、调整亮度、调整饱和度、在多种颜色空间中变亮/变暗。
- 卷积:索贝尔滤波器、模糊、拉普拉斯效果、边缘检测等。
- 通道操作:增加/减少 RGB 通道值、交换通道、删除通道等。
- 转换:调整大小、裁剪、旋转和翻转图像。
- 单色效果:双色调、各种形式的灰度化、阈值、棕褐色、平均 RGB 值。
- 颜色处理:在HSL、LCh和sRGB等各种颜色空间中处理图像,并根据需要调整颜色。
- 滤镜:提供超过30种预设滤镜,包括各种效果和转换。
- 文本:以艺术方式将文本应用到图像上,或用于水印等。
- 水印:以多种格式为图像添加水印。
- 混合:使用10种不同的技术混合图像,更改图像背景。
安装
本地
将以下行添加到您的Rust项目Cargo.toml依赖项部分
Cargo.toml
[dependencies]
photon-rs = "0.3.2"
Web
将Photon作为npm模块安装
npm install --save @silvia-odwyer/photon
Node.js
要为Node.js安装Photon npm模块,请使用以下命令
npm install --save @silvia-odwyer/photon-node
本地使用Photon
以下代码从文件系统打开图像,应用效果,并保存。
以下是一个代码示例,供您开始使用
extern crate photon_rs;
use photon_rs::native::{open_image, save_image};
fn main() {
// 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");
}
在Web上使用Photon
模块
Photon包含一系列模块,包括
effects
:各种图像效果,包括添加偏移、阈值、双色、日晒等。channels
:与增加/减少图像数据的红、绿、蓝通道相关的函数。transform
:调整大小、裁剪、翻转和旋转图像。filters
:预设滤镜,改变图像的RGB通道。包含超过20个。conv
:拉普拉斯、索贝尔、浮雕;需要图像卷积的图像处理函数。noise
:不同色调和饱和度的噪声生成。multiple
:处理多个图像的模块,例如水印图像等。correction
:色调旋转、调整饱和度、加亮/变暗:在多个颜色空间中提供所有技术,产生不同的效果。
所有效果和滤镜都可以在以下位置和官方网站上查看。
运行示例
克隆此crate的官方GitHub仓库
git clone https://github.com/silvia-odwyer/photon
运行二进制文件,它将在图像上执行图像处理功能
cd crate
cargo run --release
将原始图像与输出图像进行比较,您将看到已应用所需效果。
有疑问吗?
如果您想与开发者讨论您的潜在用途案例,或者对库有更多疑问,请在此提交,我会回复您!
许可证
本项目采用Apache 2.0许可证 - 有关详细信息,请参阅LICENSE.md文件。
依赖项
~29MB
~368K SLoC