- Bump MSRV to 1.57
- Bump edition to 2021
- Bump miniz_oxide crate to 0.8
- Make license metadata SPDX compliant
- Ignore remaining PNG data after IEND chunk
- Bump bytes crate to 1.0
- Fix decoding JPEGs containing a DRI segment
- Fix potential integer overflow when calculating jpeg segment size
- Fix docs.rs build
- Added support for
Png
. - Added
DynImage
, an enum that wrapsJpeg
,Png
andWebP
to give easy access to decoding, encoding and theImageICC
andImageEXIF
traits without having to write separate code for every format. - Replaced internal usage of
Vec<u8>
withBytes
from thebytes
crate, allowing more efficient memory managment. - Replaced
Jpeg::read
andWebP::read
withJpeg::from_bytes
andWebP::from_bytes
. - Deprecated
Jpeg::write_to
andWebP::write_to
. The new way of encoding an image is to call theencoder
method, which will return anImageEncoder
that can write the file piece by piece, return every piece through anIterator
, or copy every piece into a linear piece of memory and returning it. - Tidied up and wrote more meaninful errors in the
Error
enum. - Implemented
std::error::Error
for theError
enum. - Added
no_std
support via thestd
feature, which is enabled by default. - Bumped the MSRV to 1.39.0.
- Removed the
byteorder
crate. - Improved the documentation and added examples.
- EXIF extraction via the
ImageEXIF
trait. - Simplified
Jpeg
Entropy
decoding, removing thebytecount
crate.
Jpeg
andWebP
read and write support.- ICC extraction via the
ImageICC
trait.