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 中使用

WTFPL 许可证

230KB
8K SLoC

picto

Crates.io Crates.io WTFPL Build Status

一个图像处理库。

用法

将以下内容添加到您的项目的 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