Skip to content

Tags: image-rs/image

Tags

v0.25.8

Toggle v0.25.8's commit message
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)

v0.25.7

Toggle v0.25.7's commit message
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)

v0.25.6

Toggle v0.25.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 0.25.6 (#2441)

v0.25.5

Toggle v0.25.5's commit message

Verified

This tag was signed with the committer’s verified signature.
197g Aurelia Molzer
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

v0.25.4

Toggle v0.25.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #2354 from image-rs/release-0.25.4

Propose wording for republishing as 0.25.4

v0.25.3

Toggle v0.25.3's commit message

Verified

This tag was signed with the committer’s verified signature.
197g Aurelia Molzer
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.

v0.25.2

Toggle v0.25.2's commit message

Verified

This tag was signed with the committer’s verified signature.
197g Aurelia Molzer
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.

v0.25.1

Toggle v0.25.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 0.25.1 (#2187)

v0.25.0

Toggle v0.25.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #2164 from image-rs/next-version-0.25

Release 0.25.0

v0.24.9

Toggle v0.24.9's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 0.24.9 (#2152)