#image-resizing #image-conversion #image #resize #conversion #format-conversion #interlacing

image-convert

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

47 releases

0.18.0 Sep 1, 2024
0.16.1 Dec 9, 2023
0.15.0 Sep 7, 2023
0.14.0 Apr 18, 2023
0.8.9 Jul 28, 2019

#117 in Images

Download history 15/week @ 2024-07-31 235/week @ 2024-08-07 46/week @ 2024-08-14 8/week @ 2024-08-21 172/week @ 2024-08-28 66/week @ 2024-09-04 32/week @ 2024-09-11 112/week @ 2024-09-18 158/week @ 2024-09-25 70/week @ 2024-10-02 35/week @ 2024-10-09 17/week @ 2024-10-16 30/week @ 2024-10-23 46/week @ 2024-10-30 35/week @ 2024-11-06 76/week @ 2024-11-13

192 downloads per month
Used in 4 crates

MIT license

61KB
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
~117K SLoC