serialimage 1.1.0

Serialization for the [image](https://crates.io/crates/image) crate's DynamicImage type, with additional metadata.
Documentation

serialimage

This crate extends the image crate with serializable DynamicImages: the DynamicSerialImages. Additionally, it implements an ImageMetaData struct to pack additional metadata information. Note, however, the metadata information is lost on conversion from DynamicSerialImage to DynamicImage.

Usage

Add the following to your Cargo.toml:

[dependencies]
serialimage = "1.0.0"

and the following to your source code:

use serialimage::{DynamicSerialImage, ImageMetaData};

Then, you can create a new image metadata object:

let meta = ImageMetaData::new(...);

Then, a DynamicSerialImage can be created from a DynamicImage. For example, with a DynamicImage from a Luma<u16> pixel type image buffer,

let img = DynamicImage::from(ImageBuffer::<Luma<u16>, Vec<u16>>::new(10, 10)); // create DynamicImage
let mut img = DynamicSerialImage::from(img); // create DynamicSerialImage
img.set_metadata(meta); // set the metadata
let imgstr = serde_json::to_string(&img).unwrap(); // serialize
let simg: DynamicSerialImage = serde_json::from_str(&val).unwrap(); // deserialize
assert_eq!(img, simg);

Now img can be sent on its merry way with full serialization

Traits

DynamicSerialImage and SerialImageBuffer implements the TryFrom and TryInto traits for image::DynamicImage.