Skip to content

v0.18.0-rc.3

@197g 197g tagged this 02 Jul 12:13
Cumulative to the last 0.17 release

* Removed deprecated `Info::encode` and `Encoder::set_srgb` methods.
* Improved the compression settings API for encoding.
* `Decoder` now requires a reader that implements `Seek` and `BufRead` traits.
* Bump bitflags dependency to 2.0.
* `StreamingDecoder::update` now takes a structured `UnfilterBuf` argument
  instead of a direct reference to a vector. This allows in-place
  decompression. There is a public constructor for `UnfilterBuf`.
* The methods `Decoder::output_buffer_size` and `output_line_size` now return
  `Option<usize>` to reflect that these calculations no longer overflow on some
  targets where the required buffers can not be represented in the address
  space. They return the mathematically correct size where possible.

* Added `Reader::read_row` method.
* Add support for parsing eXIf chunk.
* Treat most auxiliary chunk errors as benign.
* Added `splat_interlaced_row`, which implements an alternative method for
  merging Adam7 interlaced lines into the output buffer that is more suitable
  for the presentation of progressive states of the buffer.
* Added `Adam7Variant` documenting the various methods for applying interlaced
  rows and to prepare an API to progressively read frames through `Decoder`.

* The decoding of Adam7 interlaced data is now much faster.
* The `acTL` chunk is now ignored when it is invalid, instead of producing
  errors while reading or decoding the following APNG chunks.
* The requirement of the `fcTL` chunk for the default image to match the IHDR's
  indicate image size is now enforced.
* More minor format errors in auxiliary chunks are now ignored by the decoder,
  instead disregarding the malformed chunk.
* Adam7 Interlacing on 32-bit targets now handles some cases correctly that
  previously wrote some bytes to the wrong pixel indices due to overflows.
Assets 2
Loading