#image-resizing #image #convert-images #resize #conversion #high-level #interlacing

image-convert

A high level library for image identification, conversion, interlacing and high quality resizing

44 releases

0.16.1 Dec 9, 2023
0.15.0 Sep 7, 2023
0.14.0 Apr 18, 2023
0.13.0 Dec 16, 2022
0.8.9 Jul 28, 2019

#164 in Images

Download history 1/week @ 2024-02-15 27/week @ 2024-02-22 19/week @ 2024-02-29 11/week @ 2024-03-07 8/week @ 2024-03-14 29/week @ 2024-03-28 18/week @ 2024-04-04

61 downloads per month
Used in 4 crates

MIT license

63KB
1.5K SLoC

Image Convert

CI

This crate is a high level library using MagickWand (ImageMagick) for image identification, conversion, interlacing and high quality resizing.

Examples

Identify an image.

use image_convert::{ImageResource, InterlaceType, identify};

let input = ImageResource::from_path("tests/data/P1060382.JPG");

let mut output = None;

let id = identify(&mut output, &input).unwrap();

assert_eq!(4592, id.resolution.width);
assert_eq!(2584, id.resolution.height);
assert_eq!("JPEG", id.format);
assert_eq!(InterlaceType::NoInterlace, id.interlace);

Convert an image to a PNG image and also resize it.

use std::path::Path;

use image_convert::{ImageResource, PNGConfig, to_png};

let source_image_path = Path::new("tests/data/P1060382.JPG");

let target_image_path = Path::join(source_image_path.parent().unwrap(), "P1060382_output.png");

let mut config = PNGConfig::new();

config.width = 1920;

let input = ImageResource::from_path(source_image_path);

let mut output = ImageResource::from_path(target_image_path);

to_png(&mut output, &input, &config).unwrap();

Supported output formats are BMP, JPG, PNG, GIF, WEBP, ICO, PGM and GrayRaw.

Crates.io

https://crates.io/crates/image-convert

Documentation

https://docs.rs/image-convert

License

MIT

Dependencies

~3.5–6.5MB
~112K SLoC