#图像处理 #photon #native

bin+lib photon-rs

高性能图像处理库,适用于本地和网页使用

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 图像

Download history 296/week @ 2024-03-13 310/week @ 2024-03-20 292/week @ 2024-03-27 297/week @ 2024-04-03 266/week @ 2024-04-10 287/week @ 2024-04-17 305/week @ 2024-04-24 284/week @ 2024-05-01 264/week @ 2024-05-08 334/week @ 2024-05-15 296/week @ 2024-05-22 278/week @ 2024-05-29 223/week @ 2024-06-05 274/week @ 2024-06-12 260/week @ 2024-06-19 159/week @ 2024-06-26

953 每月下载量
用于 6 crate

Apache-2.0

255KB
4K SLoC

Photon banner, showing the Photon logo on a dark background

Status GitHub Issues GitHub Pull Requests Gitter chat Crates.io


高性能、跨平台 Rust/WebAssembly 图像处理库

📝 目录

Photon 是一个高性能的 Rust 图像处理库,它可以编译成 WebAssembly,允许在本地和网页上进行安全、快速的图像处理。

特性

  • 快速:Photon 的性能优于包括 ImageMagick 在内的所有最快的库。在网页上,它的高性能允许在网页上实现接近本地速度的图像处理。即将提供基准测试。
  • 使用 JS 调用:想在使用网页或 Node 时使用 Photon?使用一个简单的 npm 包,你就可以开始使用了。利用 WebAssembly 的所有好处,无需任何成本即可实现抽象。
  • 本地使用:对于命令行应用程序、原生照片编辑应用程序等,Photon 的核心代码库是用 Rust 编写的,允许跨平台开发。

实时演示

查看 官方 WASM 演示

入门

入门指南

查看 Photon 的 入门指南,包括教程、安装说明等

文档

📚 文档

查看 官方文档

Photon 应用实例

Imgur

功能

提供 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");    

}

要获取更多示例,请查看关于如何本地使用Photon的指南。

在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