Changelog ========= Unreleased ---------- 1.8.0 (2024-01-17) ------------------ - Fix sphinx build errors - Remove old imghdr patch test (Storm Heg) - Update the OpenCV detect_faces test for determinism (Stephan Lachnit) - Add `transform_colorspace_to_srgb` operation and use it to fix inaccurate colors when saving specific image files (Storm Heg) Note: this forces conversion to sRGB for CMYK images with an ICC profile as CMYK is not supported by PNG, WEBP, AVIF and HEIC Pillow encoders. Otherwise, when a CMYK image is encoded, it gets converted to RGB resulting in inaccurate colors because Pillow ignores the ICC profile when performing the conversion. So, as a workaround, we manually force an accurate conversion to RGB before encoding the image. This results in a much more accurate representation of the original CMYK image. - Add support for ICO images (Jake Howard) 1.7.0 (2023-11-26) ------------------ Note: due to various limitations, version 1.6.3 includes some of the fixes present in 1.7.x, most importantly the ICC profile and EXIF data when saving a JPEG to PNG, WebP, AVIF. - Test with Python 3.12 (@zerolab) - Add optional dependencies for Pillow/Wand (@zerolab) One can run ``pip install Willow[Pillow]`` or ``Willow[Wand]`` and get the correct Pillow or Wand versions. - Replace wrong unicode character in the `image/heic` mime type (Stephan Lachnit) - Fix color management by keeping ICC color profiles and EXIF data in addition (André Fuchs, Stefan Istrate) 1.6.3 (2023-11-26) ------------------ - Replace wrong unicode character in the `image/heic` mime type (Stephan Lachnit) - Fix color management by keeping ICC color profiles and EXIF data in addition (André Fuchs, Stefan Istrate) 1.6.2 (2023-09-06) ------------------ - Ensure SVG files are given a mime type (Jake Howard) 1.6.1 (2023-08-04) ------------------ - Fix ``NUMBER_PATTERN`` regex for parsing SVG viewboxes (Joshua Munn) 1.6 (2023-07-13) ---------------- - Configure linting with black, ruff and pre-commit. Add coverage reports (@zerolab) - Switch to flit for packaging, and PyPI trusted publishing (@zerolab) - Drop support for Python 3.7 - Add AVIF support (Aman Pandey) - Add support for image optimization libraries via :ref:`optimizer classes ` (@zerolab) - Add check for CMYK when saving as PNG (Stan Mattingly, @zerolab) 1.5.3 (2023-09-06) ------------------ - Ensure SVG files are given a mime type (Jake Howard) 1.5.2 (2023-08-04) ------------------ - Fix ``NUMBER_PATTERN`` regex for parsing SVG viewboxes (Joshua Munn) 1.5.1 (2023-07-06) ------------------ - Fix SVG cropping (Joshua Munn) 1.5 (2023-03-29) ---------------- - Drop support for Python versions below 3.7 - Drop support for Pillow versions below 9.1 and fix Pillow 10 deprecation warnings (Alex Tomkins) - Replace deprecated ``imghdr`` with ``filetype``. This allows detecting newer image formats such as HEIC (Herbert Poul) - Add SVG support (Joshua Munn) - Add HEIF support via the ``pillow-heif`` library (Alexander Piskun) 1.4.1 (2022-02-25) ------------------ - Drop support for Python 3.4 - Imagemagick 7 compatibility fixes (Matt Westcott) - Fix: Implemented consistent behavior between Pillow and Wand for out-of-bounds crop rectangles (Matt Westcott) 1.4 (2020-05-26) ---------------- - Implemented save quality/lossless options for WebP (@mozgsml) - Added missing docs for WebP support (@mozgsml) 1.3 (2019-10-16) ---------------- - Added ``.get_frame_count()`` operation (@kaedroho) 1.2 (2019-10-11) ---------------- - Added WebP support (@frmdstryr) - Added ``.rotate()`` operation (@mrchrisadams & @simo97) 1.1 (2017-12-04) ---------------- - Added `set_background_color_rgb` operation - Update MANIFEST.in (Sanny Kumar) 1.0 (2017-08-04) ---------------- - OpenCV 3 support (Will Giddens) - Removed Apple copyrighted ICC profile from orientation test images (Christopher Hoskin) - Fix: Altered `detect_features` in OpenCV 3 to return a list instead of a numpy array (Trent Holliday) - Support for TIFF files (Maik Hoepfel) - Support for BMP files was made official (Maik Hoepfel) 0.4 (2016-10-05) ---------------- - Support for image optimization and saving progressive JPEG files - Added documentation 0.3.1 (2016-05-16) ------------------ - Fixed crash in the Pillow auto_orient operation when the image has an invalid Orientation EXIF Tag (Sigurdur J Eggertsson) - The ``auto_orient`` operation now catches all errors raised while reading EXIF data (Tomas Olander) - Palette formatted PNG and GIF files that have transparency no longer lose their transparency when resizing them 0.3 (2016-03-09) ---------------- A major internals refactor has taken place in this release, there are a number of breaking changes: - The Image class is now immutable. Previously, "resize" and "crop" operations altered the image in-place but now they now always return a new image leaving the original untouched. - There are now multiple Image classes. Each one represents possible state the image can be in (for example in a file, loaded in Pillow, etc). Operations can return an image in a different class to what the operation was performed on. - The "backends" have been renamed to "plugins". - A new registry module has been added which can be used for registering new plugins and operations. - The "original_format" attribute has been deprecated. Other changes in this release: - Added auto_orient operation 0.2.1 (2015-05-27) ------------------ - JPEGs are now detected from first two bytes of their file. Allowing non JFIF/EXIF JPEG images to be loaded 0.2 (2015-04-01) ---------------- - Added loader for BMP files - Added has_alpha and has_animation operations - Added get_pillow_image and get_wand_image operations - Added save_as_{jpeg,png,gif} operations - Crop and resize now all arguments in a tuple (Similar to Pillow) - Dropped Python 2.6 and 3.2 support - Formats now detected using images header instead of extension - Now possible to specify alternative cascade file for face detection - Fix: Images now saved in the same format they were loaded - Fix: 1 and P formatted images now converted to RGB when saving to JPEG 0.1 (2015-02-22) ---------------- Initial release