Tags: image-rs/image
Tags
Release 0.25.8 Re-release of `0.25.7` Fixes: - Reverted a signature change to `load_from_memory` that lead to large scale type inference breakage despite being technically compatible. - Color conversion Luma to Rgb used incorrect coefficients instead of broadcasting. From version 0.25.7 (yanked) Features: - Added an API for external image format implementations to register themselves as decoders for a specific format in `image` (#2372) - Added [CICP](https://www.color.org/iccmax/download/CICP_tag_and_type_amendment.pdf) awarenes via [moxcms](https://crates.io/crates/moxcms) to support color spaces (#2531). The support for transforming is limited for now and will be gradually expanded. - You can now embed Exif metadata when writing JPEG, PNG and WebP images (#2537, #2539) - Added functions to extract orientation from Exif metadata and optionally clear it in the Exif chunk (#2484) - Serde support for more types (#2445) - PNM encoder now supports writing 16-bit images (#2431) API improvements: - `save`, `save_with_format`, `write_to` and `write_with_encoder` methods on `DynamicImage` now automatically convert the pixel format when necessary instead of returning an error (#2501) - Added `DynamicImage::has_alpha()` convenience method - Implemented `TryFrom<ExtendedColorType>` for `ColorType` (#2444) - Added `const HAS_ALPHA` to trait `Pixel` - Unified the error for unsupported encoder colors (#2543) - Added a `hooks` module to customize builtin behavior, `register_format_detection_hook` and `register_decoding_hook` for the determining format of a file and selecting an `ImageDecoder` implementation respectively. (#2372) Performance improvements: - Gaussian blur (#2496) and box blur (#2515) are now faster - Improve compilation times by avoiding unnecessary instantiation of generic functions (#2468, #2470) Bug fixes: - Many improvements to image format decoding: TIFF, WebP, AVIF, PNG, GIF, BMP, TGA - Fixed `GifEncoder::encode()` ignoring the speed parameter and always using the slowest speed (#2504) - `.pnm` is now recognized as a file extension for the PNM format (#2559)
Release 0.25.7 Features: - Added an API for external image format implementations to register themselves as decoders for a specific format in `image` (#2372) - Added [CICP](https://www.color.org/iccmax/download/CICP_tag_and_type_amendment.pdf) awarenes via [moxcms](https://crates.io/crates/moxcms) to support color spaces (#2531). The support for transforming is limited for now and will be gradually expanded. - You can now embed Exif metadata when writing JPEG, PNG and WebP images (#2537, #2539) - Added functions to extract orientation from Exif metadata and optionally clear it in the Exif chunk (#2484) - Serde support for more types (#2445) - PNM encoder now supports writing 16-bit images (#2431) API improvements: - `save`, `save_with_format`, `write_to` and `write_with_encoder` methods on `DynamicImage` now automatically convert the pixel format when necessary instead of returning an error (#2501) - Added `DynamicImage::has_alpha()` convenience method - Implemented `TryFrom<ExtendedColorType>` for `ColorType` (#2444) - Added `const HAS_ALPHA` to trait `Pixel` - Unified the error for unsupported encoder colors (#2543) - Added a `hooks` module to customize builtin behavior, `register_format_detection_hook` and `register_decoding_hook` for the determining format of a file and selecting an `ImageDecoder` implementation respectively. (#2372) Performance improvements: - Gaussian blur (#2496) and box blur (#2515) are now faster - Improve compilation times by avoiding unnecessary instantiation of generic functions (#2468, #2470) Bug fixes: - Many improvements to image format decoding: TIFF, WebP, AVIF, PNG, GIF, BMP, TGA - Fixed `GifEncoder::encode()` ignoring the speed parameter and always using the slowest speed (#2504) - `.pnm` is now recognized as a file extension for the PNM format (#2559)
Release 0.25.5 Features: - Added support for decoding 10-bit and 12-bit AVIF - Initial, opt-in serde support for an enum. This may be extended to other types in the future. Bug fixes: - [Multiple bug fixes in AVIF decoding](#2373) - The `rayon` feature now correctly toggles the use of `rayon` when encoding AVIF. (Previously it would be either always on or always off depending on the version of the `ravif` crate in your dependency tree.) - "jfif" file extension for JPEG images is now recognized
Release 0.25.3 Features: - Much faster decoding of lossless WebP due to a variety of optimizations. Our benchmarks show 2x to 2.5x improvement. - Added support for orientation metadata, so that e.g. smartphone camera images could be displayed correctly: - Added `ImageDecoder::orientation()` and implemented orientation metadata extraction for JPEG, WebP and TIFF formats - Added `DynamicImage::apply_orientation()` to apply the orientation to an image - Added support for extracting Exif metadata from images via `ImageDecoder::exif_metadata()`, and implemented it for JPEG and WebP formats - Added `ImageEncoder::set_icc_profile()` and implemented it for WebP format. Pull requests with implementations for other formats are welcome. - Added `DynamicImage::fast_blur()` for a linear-time approximation of Gaussian blur, which is much faster at larger blur radii Bug fixes: - Fixed some APNG images being decoded incorrectly - Fixed the iterator over animated WebP frames to return `None` instead of an error when the end of the animation is reached - Toggling the `rayon` feature now correctly toggles the use of `rayon` within `ravif` (AVIF encoder). Previously it would be either always on or always off, depending on the `ravif` version.
Release 0.25.2 Features: - Added the HDR encoder to supported formats in generic write methods with the `hdr` feature enabled. Supports 32-bit float RGB color only, for now. - When cloning `ImageBuffer`, `DynamicImage` and `Frame` the existing buffer will now be reused if possible. - Added `image::ImageReader` as an alias. - Implement `ImageEncoder` for `HdrEncoder`. Structural changes - Switch from `byteorder` to `byteorder-lite`, consolidating some casting unsafety to `bytemuck`. - Many methods on `DynamicImage` and buffers gained `#[must_use]` indications. Bug fixes: - Removed test data included in the crate archive. - The WebP animation decoder stops when reaching the indicate frame count. - Fixed bugs in the `bmp` decoder. - Format support gated on the `exr` feature now compiles in isolation.
PreviousNext