-
Notifications
You must be signed in to change notification settings - Fork 688
Version 1.0 plan #2245
Description
Tracking issue for items to consider for the 1.0 major version. One lesson from the prior release is that it is much easier if we have PRs ready before the release window starts.
Rational for going to 1.0 is described in #2316. Notably, this is not intended as the last breaking release, only as an indication of the crate's existing commitment to stability.
Planned
-
Change default speed parameter for
GifEncoder -
Rename Reader to ImageReader
-
Change
blurto take the blur radius rather than sigma -
Color space support
-
Prepare
ImageDecoderfor limits, more metadata, performance (status based on Decoder metadata interface #2672)- Remove
PngDecoder::with_limitsand fixPngDecoder::set_limits - Some PNG structure can not be used PNG: Metadata APIs skip metadata after IDAT #2652
- jpeg always allocates as a result of the interface
- Get rid of
ImageDecoderRectDocument removal of ImageDecoderRect #2685
- Remove
-
Better animation support for
ImageDecoderImplement loop_count for AnimationDecoder Trait. #2716 -
Remove accidentally added
ImageFormat::Pcxvariant -
Default limits matching
Limits::default -
Remove
GenericImage<Pixel = Rgba<u8>>implementation for DynamicImage- Prevent confusion like in GenericImage::copy_from can't be used with RGB, only with RGBa #1952
- Remove GenericImage<Pixel = Rgba<u8>> impl for DynamicImage #2136
- Draft: No GenericImage::get_pixel_mut method #2356, can
PixelWithColorreplace the use oftype_id? - DynamicImage:from SubImage<&DynamicImage>::to_image creates Rgba8 instead of L16 #2274
impl GenericImage for DynamicImagelooses precision #1592
-
Makerayonan explicit feature, not a default feature -
Replace
DynamicImage::resizewithDynamicImage::resize_proportional(or similar) to make behavior clearer. -
Polishing for
ImageEncoder- Remove
encodemethod on other encoders (in because it is redundant with ImageEncoder::write_image) - jpeg Replace in-tree JPEG encoder with jpeg-encoder crate #2636
- Do not repeat
PngDecodersupports setting limits viawith_limitsbut not viaset_limits#2084 - Format-specific configurations encoders with the
ImageEncodertrait - Sequence writing with
ImageEncoder
- Remove
-
Update API for crop
- Remove
crop_imm, replacecropon buffer types - Make
cropandsub_imageoperate onRect - Tracking: imageops:: and DynImage::crop()/crop_imm() breakage #1201
- The documentation on
crop()is confusing #2293 - Cropping API doesn't check bounds, easy to misuse #2296
- Tracking: imageops:: and DynImage::crop()/crop_imm() breakage #1201
- Remove
-
Remove more deprecated methods:
-
Pixel::{channels4, from_channels}(Remove Pixel channels4/from_channels and add Pixel::broadcast #2711 )
-
-
Various API consistencies
Possible
- Pixel access changes:
get_pixelis very inconsistent and should beOption, mostly: Pixel access naming conventions #1853- row iteration could yield standard slices: Add
par_enumerate_rows(_mut)toImageBufferand friends #2113
- Remove
GenericImage::{get_pixel_mut, blend_pixel}- alternative: fix performance in a sealed trait
Supportno_std