Rust image aims to be a pure-Rust implementation of various popular image formats. Accompanying reading/write support, rust image provides basic imaging processing function. See README.md
for further details.
- Interlaced (progressive) or animated images are not well supported.
- Images with n bit/channel (n ≠ 8) are not well supported.
- Fixed an issue in
HdrDecoder::read_image_transform
that could drop uninitialized instances of arbitrary types on panic or expose uninitialized memory. The fix entails not dropping any value on error or panic, the method should only be used to read to types withoutDrop
implementations.
- Fixed a variety of crashes and opaque errors in webp
- Updated the png limits to be less restrictive
- Reworked even more
unsafe
operations into safe alternatives - Derived Debug on FilterType and Deref on Pixel
- Removed a restriction on DXT to always require power of two dimensions
- Change the encoding of RGBA in bmp using bitfields
- Corrected various urls
- A fairly important bugfix backport
- Fixed a potentially memory safety issue in the hdr and tiff decoders, see #885
- See the full advisory for an analysis
- Fixes
ImageBuffer
index calculation for very, very large images - Fix some crashes while parsing specific incomplete pnm images
- Added comprehensive fuzzing for the pam image types
- Updated README to use
GenericImageView
- Removed outdated version number from CHANGES
- Compiles now with wasm-unknown-emscripten target
- Restructured
ImageDecoder
trait - Updated README with a more colorful example for the Julia fractal
- Use Rust 1.24.1 as minimum supported version
- Support for loading GIF frames one at a time with
animation::Frames
- The TGA decoder now recognizes 32 bpp as RGBA(8)
- Fixed
to_bgra
document comment - Added release test script
- Removed unsafe code blocks several places
- Fixed overlay overflow bug issues with documented proofs
- Clippy lint pass
- Updated num-rational dependency
- Added BGRA and BGR color types
- Improved performance of image resizing
- Improved PBM decoding
- PNM P4 decoding now returns bits instead of bytes
- Fixed move of overlapping buffers in BMP decoder
- Fixed some document comments
GenericImage
andGenericImageView
is now object-safe- Moved TIFF code to its own library
- Fixed README examples
- Fixed ordering of interpolated parameters in TIFF decode error string
- Thumbnail now handles upscaling
- GIF encoding for multiple frames
- Improved subimages API
- Cargo fmt fixes
- Fixed panic when blending with alpha zero.
- Made
save
consistent. - Consistent size calculation.
- Fixed bug in
apply_with_alpha
. - Implemented
TGADecoder::read_scanline
. - Use deprecated attribute for
pixels_mut
. - Fixed bug in JPEG grayscale encoding.
- Fixed multi image TIFF.
- PNM encoder.
- Added
#[derive(Hash)]
forColorType
. - Use
num-derive
for#[derive(FromPrimitive)]
. - Added
into_frames
implementation for GIF. - Made rayon an optional dependency.
- Fixed issue where resizing image did not give exact width/height.
- Improved downscale.
- Added a way to expose options when saving files.
- Fixed some compiler warnings.
- Switched to lzw crate instead of using built-in version.
- Added
ExactSizeIterator
implementations to buffer structs. - Added
resize_to_fill
method. - DXT encoding support.
- Applied clippy suggestions.
- Various improvements.
- Additional supported image formats (BMP and ICO).
- GIF and PNG codec moved into separate crates.
- Replace
std::old_io
withstd::io
.
- Support for interlaced PNG images.
- Writing support for GIF images (full color and paletted).
- Color quantizer that converts 32bit images to paletted including the alpha channel.
- Initial support for reading TGA images.
- Reading support for TIFF images (packbits and FAX compression not supported).
- Various bug fixes and improvements.
- Initial release
- Basic reading support for png, jpeg, gif, ppm and webp.
- Basic writing support for png and jpeg.
- A collection of basic imaging processing function like
blur
orinvert