14个版本
0.4.4 | 2021年11月30日 |
---|---|
0.4.3 | 2017年1月28日 |
0.4.2 | 2016年12月22日 |
0.4.0 | 2016年11月2日 |
0.1.2 | 2016年9月25日 |
#311 in 图像
在 2 crate 中使用
230KB
8K SLoC
picto
一个图像处理库。
用法
将以下内容添加到您的项目的 Cargo.toml
[dependencies]
picto = "0.2"
支持的格式
格式 | 解码 | 编码 |
---|---|---|
PNG | ✔ | ✔ |
JPEG | ✔ | ✘ |
GIF | ✔ | ✔ |
BMP | ✔ | ✔ |
TGA | ✔ | ✔ |
XYZ | ✔ | ✘ |
文档
文档可在 此处 获取。
示例
以下示例将图像转换为灰度(保持alpha通道),然后放大并模糊。
extern crate picto;
use picto::{read, write};
use picto::color::{Rgba, Lumaa};
use picto::processing::prelude::*;
use std::env;
fn main() {
write::to_path(env::args().nth(2).unwrap(),
&read::from_path::<u8, Rgba, _>(env::args().nth(1).unwrap()).unwrap()
.convert::<u8, Lumaa>()
.scale_by::<scaler::Cubic, u8, Rgba>(2.0)
.blur::<u8, Rgba>(4.0)).unwrap();
}
sRGB及其相关类型
由picto提供的RGB类型和操作假设颜色是在线性RGB空间中给出的,但许多图像包含在sRGB颜色空间中的数据,这意味着需要进行一些转换才能进行准确的操作。
以下代码将加载一个图像,并将其转换为可用于sRGB空间的 Buffer
。
use picto;
use picto::color::{Rgb, Srgb};
let image = picto::read::from_path::<Rgb, u8, _>("path-to-image.jpg")
.convert_with::<Rgb, f32, _>(|p| Srgb::new(p.red, p.green, p.blue).into());
依赖项
~3.5MB
~68K SLoC