picto

Crates.iopicto
lib.rspicto
version0.4.4
sourcesrc
created_at2016-09-21 16:49:03.65265
updated_at2021-11-30 12:59:33.03017
descriptionImage handling library.
homepage
repositoryhttps://github.com/meh/rust-picto
max_upload_size
id6573
size1,166,883
owners (github:robigalia:owners)

documentation

https://docs.rs/picto

README

picto

Crates.io Crates.io WTFPL Build Status

An image handling library.

Usage

Add the following to the Cargo.toml in your project:

[dependencies]
picto = "0.2"

Supported Formats

Format Decoding Encoding
PNG
JPEG
GIF
BMP
TGA
XYZ

Documentation

Documentation is available here.

Example

The following example turns an image to gray scale (maintaining the alpha), then upscales it, and blurs it.

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 and friends

The RGB types and operations provided by picto assume the colors are given in linear RGB space, but many images contain the data in sRGB color space, this means some conversion needs to happen to have accurate operations.

The following code will load an image, and convert it to a Buffer usable from an sRGB space.

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());
Commit count: 221

cargo fmt