photo

Crates.iophoto
lib.rsphoto
version
sourcesrc
created_at2023-06-02 19:30:13.558731+00
updated_at2025-04-23 12:26:17.524112+00
descriptionImage utility library
homepage
repository
max_upload_size
id881153
Cargo.toml error:TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Freddy Wordingham (FreddyWordingham)

documentation

README

Photo

Utility image classes for Rust.

Features

  • Grayscale, Grascale with alpha, RGB and RGBA images, as well as custom color types.
  • Colour maps
  • Image IO
  • Image transformations utilities.
  • Tile manipulation.
  • Generic precision types for image components: u8, f32, f64 etc.
  • Print images to the console.

Usage

Reading and writing images

Loading a RGB image with f32 components:

use photo::ImageRGB;

let mut image = ImageRGB::<f32>::load("input/my_colour_image.png").expect("Failed to load image");

Save it:

image.save("output/my_colour_image.png").expect("Failed to save image");

Image transformations

image.flip_horizontal();
image.rotate_clockwise();

Tiling

let tile_size = (14, 14); // 14x14 pixel tiles
let tiles: Arrray2<ImageRGB> = image.tiles(tile_size);

Colour maps

let colours = vec!["#FF0000", "#00FF00", "#0000FF00"];
let colour_map: ColourMap<f32, LinSrgba> = ColourMap::new(&colours);

let sample = colour_map.sample(0.75);

Colourize grayscale images

use photo::ImageG;

let grayscale_image = ImageG::<u8>::load("input/my_grayscale_image.png").expect("Failed to load image");
let coloured_image = grayscale_image.colourize(&colour_map);

Print images to the console

println!("{}", image);
Commit count: 0

cargo fmt