Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.3k
Releases: python-pillow/Pillow
11.3.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html
Deprecations
- Deprecate fromarray mode argument#9018 [@radarhere]
- Deprecate saving I mode images as PNG#9023 [@radarhere]
Documentation
- Added release notes for#9041#9042 [@radarhere]
- Add release notes for#8912 and#8969#9019 [@radarhere]
- ImageFont does not handle multiline text#9000 [@radarhere]
- Updated Ubuntu CI targets#8988 [@radarhere]
- Update MinGW package names#8987 [@H4M5TER]
- Updated docstring#8943 [@radarhere]
- Mention that tobytes() with the raw encoder uses Pack.c#8878 [@radarhere]
- Refactor docs
Makefile
#8933 [@hugovk] - Add template for quarterly release issue#8932 [@aclark4life]
- Add list of third party plugins#8910 [@radarhere]
- Update redirected URL#8919 [@radarhere]
- Docs: use sentence case for headers#8914 [@hugovk]
- Docs: remove unused Makefile targets#8917 [@hugovk]
- Remove indentation from lists#8915 [@radarhere]
- Python 3.13 is tested on Arch#8894 [@radarhere]
- Move XV Thumbnails to read only section#8893 [@aclark4life]
- Updated macOS tested Pillow versions#8890 [@radarhere]
Dependencies
- Add AVIF to wheels using only aomenc and dav1d AVIF codecs for reduced size#8858 [@fdintino]
- Use same AVIF URL when fetching dependency#8871 [@radarhere]
- Update dependency mypy to v1.16.1#9026 [@renovate[bot]]
- Update libpng to 1.6.49#9014 [@radarhere]
- Update dependency cibuildwheel to v3#9010 [@renovate[bot]]
- Updated libjpeg-turbo to 3.1.1#9009 [@radarhere]
- Update dependency mypy to v1.16.0#8991 [@renovate[bot]]
- Updated libpng to 1.6.48#8940 [@radarhere]
- Updated Ghostscript to 10.5.1#8939 [@radarhere]
- Updated harfbuzz to 11.2.1#8937 [@radarhere]
- Updated libavif to 1.3.0#8949 [@radarhere]
- Update dependency cibuildwheel to v2.23.3#8931 [@renovate[bot]]
- Updated harfbuzz to 11.1.0#8904 [@radarhere]
Testing
- Add
match
parameter topytest.warns()
#9038 [@hugovk] - Increase pytest verbosity#9040 [@radarhere]
- Improve SgiImagePlugin test coverage#8896 [@radarhere]
- Update ruff pre-commit ID#8994 [@radarhere]
- Only check DHT marker for libjpeg-turbo#9025 [@radarhere]
- Improve BLP tests#9020 [@radarhere]
- Fix warning#9016 [@radarhere]
- Test Python 3.14t on macOS and Linux#9011 [@radarhere]
- Only accept missing tkinter when building wheels on Windows#8981 [@radarhere]
- Fix test#8996 [@radarhere]
- Stop testing deprecated Windows Server 2019 runner image#8989 [@radarhere]
- Run slow tests on valgrind, but without timeout#8975 [@radarhere]
- Close file pointer earlier#8895 [@radarhere]
- Added Fedora 42#8899 [@radarhere]
- Removed Fedora 40#8887 [@radarhere]
Type hints
- Assert palette is not None#8877 [@radarhere]
- Do not import type checking#8854 [@radarhere]
- Improve type hints#8883 [@radarhere]
- Update dependency mypy to v1.16.0#8991 [@renovate[bot]]
Other changes
- Updated check script paths#9052 [@radarhere]
- Raise FileNotFoundError when opening an empty path#9048 [@radarhere]
- Handle IPTC TIFF tags with incorrect type#8925 [@radarhere]
- Do not update palette for L mode GIF frame#8924 [@radarhere]
- Use save parameters as encoderinfo defaults#9001 [@radarhere]
- Add support for iOS#9030 [@freakboy3742]
- Fix qtables and quality scaling#8879 [@Kyliroco]
- Read 16-bit McIdas images into I;16B mode to allow for memory mapping#9046 [@radarhere]
- Support ttb multiline text#8730 [@radarhere]
- Use unpacking#9044 [@radarhere]
- Fix saving MPO with more than one appended image#8979 [@radarhere]
- Restore original encoderinfo after saving#8942 [@radarhere]
- Return PixelAccess from first load of ICO and IPTC images#8922 [@radarhere]
- Improve justifying text#8905 [@radarhere]
- Set color table fourth channel to zero for 1 and L mode when saving BMP#8889 [@radarhere]
- Improve reading XPM images#8874 [@radarhere]
- Fix buffer overflow when saving compressed DDS images#9041 [@radarhere]
- Use PEP 489 multi-phase initialization#8983 [@radarhere]
- Support saving I;16L TIFF images#9015 [@radarhere]
- Do not call sys.executable in ImageShow in PyInstaller application#9028 [@radarhere]
- Search for libtiff library file first on Windows and macOS#9034 [@radarhere]
- Fix libtiff cleanup#9002 [@radarhere]
- Use percent formatting for _dbg calls#9035 [@radarhere]
- Removed ImageCmsProfile._set method#9032 [@radarhere]
- Added Python 3.14 macOS x86-64 wheels#9031 [@radarhere]
- Support writing QOI images#9007 [@thisismypassport]
- Simplify C error handling#9021 [@radarhere]
- Add Python 3.14 beta wheels#9012 [@hugovk]
- Remove padding between interleaved PCX palette data#9005 [@radarhere]
- Start QOI decoding with a zero-initialized array of previously seen pixels#9008 [@radarhere]
- Correct drawing I;16 horizontal lines#8985 [@radarhere]
- Reduce number of bytes read for PCX header#9004 [@radarhere]
- Handle XMP data from an UNDEFINED TIFF tag#8997 [@radarhere]
- Do not decode bytes in PPM error message#8958 [@radarhere]
- Parse XMP tag bytes without decoding to string#8960 [@radarhere]
- Clear TIFF core image if memory mapping was used for last load#8962 [@radarhere]
- Use mask in C when drawing wide polygon lines#8984 [@radarhere]
- Simplify code#8863 [@radarhere]
- Call startswith once with a tuple#8998 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8993 [@pre-commit-ci[bot]]
- Use ImageFile.MAXBLOCK in tobytes()#8906 [@radarhere]
- Removed unreachable code#8918 [@radarhere]
- Valgrind Memory Leak Checking#8954 [@wiredfool]
- Add parallel test target, using pytest-xdist#8972 [@wiredfool]
- Add support for flat uint8 arrow arrays for multi channel images#8908 [@wiredfool]
- Removed CMAKE_POLICY_VERSION_MINIMUM=3.5 for libavif#8973 [@radarhere]
- Reduced number of bytes read in WMF header#8964 [@radarhere]
- Do not build against libavif < 1#8969 [@radarhere]
- Improved support for Python 3.14#8948 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8944 [@pre-commit-ci[bot]]
- Allow loading ImageFile state from Pillow < 11.2.1#8938 [@radarhere]
- Remove outdated comment#8929 [@radarhere]
- Add support for Grim in Wayland sessions ImageGrab#8912 [@AdianKozlica]
- Add
make [-C docs] htmllive
to rebuild and reload HTML files#8913 [@hugovk] - Build Windows arm64 wheels on arm64 runner#8898 [@radarhere]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
11.2.1
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html
Deprecations
- Moved get_child_images() to ImageFile#8689 [@radarhere]
Documentation
- Add 11.2.1 release notes#8885 [@radarhere]
- Added avif to config settings#8875 [@radarhere]
- Added release notes for#8330#8853 [@radarhere]
- Added release notes for#8781 and#8837#8843 [@radarhere]
- Added media_white_point to ImageCms documentation#8829 [@radarhere]
- Removed FIXME#8825 [@radarhere]
- Updated comment#8822 [@radarhere]
- Added release notes for#8807#8824 [@radarhere]
- DXT3 images are read in RGBA mode#8817 [@radarhere]
- JPEG comments are from the COM marker#8788 [@radarhere]
- Update Sphinx to 8.2 to remove nitpick ignore#8763 [@radarhere]
- Updated AffineTransform docstring to mention it uses the inverse matrix#8735 [@radarhere]
- Added MozJPEG documentation#8699 [@radarhere]
- Added Sphinx configuration key#8691 [@radarhere]
- Updated macOS tested Pillow versions#8654 [@radarhere]
Dependencies
- Updated xz to 5.8.1#8868 [@radarhere]
- Updated harfbuzz to 11.0.1#8870 [@radarhere]
- Update scientific-python/upload-nightly-action action to v0.6.2#8865 [@renovate[bot]]
- Updated xz to 5.8.0 in macOS and Linux wheels, but not on manylinux2014#8836 [@radarhere]
- Update dependency cibuildwheel to v2.23.2#8832 [@renovate[bot]]
- Updated harfbuzz to 11.0.0#8830 [@radarhere]
- Update dependency cibuildwheel to v2.23.1#8818 [@renovate[bot]]
- Updated Ghostscript to 10.5.0#8814 [@radarhere]
- Updated libtiff to 4.7.0#8812 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8795 [@pre-commit-ci[bot]]
- Updated harfbuzz to 10.4.0#8770 [@radarhere]
- Update dependency mypy to v1.15.0#8791 [@renovate[bot]]
- Updated libpng to 1.6.47#8764 [@radarhere]
- Updated lcms2 to 2.17#8742 [@radarhere]
- Update dependency cibuildwheel to v2.23.0#8785 [@renovate[bot]]
- Updated zlib-ng to 2.2.4#8745 [@radarhere]
- Updated libimagequant to 4.3.4 on Windows#8744 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8729 [@pre-commit-ci[bot]]
- Updated harfbuzz to 10.2.0#8688 [@radarhere]
- Updated xz to 5.6.4#8711 [@radarhere]
- Updated libpng to 1.6.46#8712 [@radarhere]
- Updated libimagequant to 4.3.4#8710 [@radarhere]
- Updated libpng to 1.6.45#8670 [@radarhere]
- Update cygwin/cygwin-install-action action to v5#8675 [@renovate[bot]]
- [pre-commit.ci] pre-commit autoupdate#8665 [@pre-commit-ci[bot]]
- Updated freetype to 2.13.3 in macOS and Linux wheels#8653 [@radarhere]
- Upgrade zlib-ng to 2.2.3#8656 [@hugovk]
Testing
- Fixed unclosed file warning#8847 [@radarhere]
- Assert image type#8619 [@radarhere]
- Parametrize tests#8838 [@radarhere]
- Change back to actions/setup-python#8833 [@radarhere]
- Simplified test code#8823 [@radarhere]
- Improved FliImagePlugin test coverage#8806 [@radarhere]
- Install libtiff-dev on Ubuntu GitHub Actions#8816 [@radarhere]
- Test using _seek to skip frames#8804 [@radarhere]
- Improved PcxImagePlugin test coverage#8797 [@radarhere]
- Use match argument#8801 [@radarhere]
- Improved BdfFontFile test coverage#8783 [@radarhere]
- Revert "Do not install libimagequant"#8778 [@radarhere]
- Improved FtexImagePlugin test coverage#8766 [@radarhere]
- Improved FontFile test coverage#8771 [@radarhere]
- Improved MpoImagePlugin test coverage#8765 [@radarhere]
- Improved SunImagePlugin coverage#8762 [@radarhere]
- Improve TarIO test coverage#8759 [@radarhere]
- Improve type checking in tests#8618 [@radarhere]
- Add PyPy3.11 to CI#8758 [@hugovk]
- Don't call
make clean
orpip
in tox#8754 [@hugovk] - Don't shadow builtin open#8756 [@radarhere]
- Removed unused test code#8752 [@radarhere]
- Use monkeypatch#8747 [@radarhere]
- Do not install libimagequant on MinGW#8724 [@radarhere]
- Use getpixel() instead of load()#8727 [@radarhere]
- Revert "Ignore brew dependencies for libraqm on macOS 13"#8725 [@radarhere]
- Fixed exceptions when closing AppendingTiffWriter#8723 [@radarhere]
- Fixed unclosed file warnings#8705 [@radarhere]
- Use monkeypatch#8707 [@radarhere]
- Use Ubuntu 22.04 for 24.04 ppc64le and s390x#8713 [@radarhere]
- Updated Ubuntu arm to 24.04 with arm64 runner#8700 [@radarhere]
- Test oldest Python on 32-bit Windows 2019 and remove AppVeyor#8525 [@hugovk]
- Corrected argument types#8681 [@radarhere]
- Test Python 3.14 pre-release#8690 [@radarhere]
- Skip test_embeddable if compiler cannot be initialized#8686 [@radarhere]
- Improved test coverage#8679 [@radarhere]
- Removed xfail for test_embeddable on Python 3.13#8683 [@radarhere]
- Use python-numpy and python-olefile instead of virtual python3 packages#8682 [@hugovk]
- Use python-pip instead of python3-pip in MinGW#8678 [@radarhere]
- Use ImageFile._Tile#8666 [@radarhere]
- Improved SPIDER test coverage#8668 [@radarhere]
- Removed unused image open#8649 [@radarhere]
- PngImageFile text is a property#8648 [@radarhere]
- Trigger wheel builds from changes in pyproject.toml#8674 [@radarhere]
Type hints
- Added fromarrow type hints#8867 [@radarhere]
- Assert image type#8619 [@radarhere]
- Check that _fp type is not DeferredError before use#8640 [@radarhere]
- Corrected type check#8760 [@radarhere]
- Improve type checking in tests#8618 [@radarhere]
- Corrected argument types#8681 [@radarhere]
- Use ImageFile._Tile#8666 [@radarhere]
- Added return types#8639 [@radarhere]
- Add overloads for exif_transpose#8657 [@cdce8p]
Other changes
- Do not include libavif in wheels#8876 [@radarhere]
- Remove GPL v2 from FreeType license#8884 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8873 [@pre-commit-ci[bot]]
- Replace deprecated classifier with licence expression (PEP 639)#8850 [@hugovk]
- Fixed conversion of AVIF image rotation property to EXIF orientation#8866 [@fdintino]
- Removed condition that is always true#8862 [@radarhere]
- Use multibuild build_github#8861 [@radarhere]
- Include filename in ImageFile state#8859 [@radarhere]
- Add KDE Wayland support for ImageGrab#8842 [@AdianKozlica]
- Only change readonly if saved filename matches opened filename#8852 [@radarhere]
- Allow HWND to be passed to ImageGrab.grab() on Windows#8516 [@radarhere]
- Allow cmake<4 when building libavif and libtiff#8851 [@radarhere]
- Image -> Arrow support#8330 [@wiredfool]
- Add AVIF plugin (decoder + encoder using libavif)#5201 [@fdintino]
- Updated xz to 5.8.0 on manylinux2014 by removing po4a dependency#8848 [@radarhere]
- Revert to zlib on macOS < 10.15#8772 [@radarhere]
- Close TarIO file handle on error#8846 [@radarhere]
- Do not import TYPE_CHECKING#8844 [@radarhere]
- Enable memory mapping on PyPy#8840 [@radarhere]
- Corrected Palm P mode save#8685 [@radarhere]
- Improved connecting discontiguous corners#8659 [@radarhere]
- Only read until the offset of the next tile#8609 [@radarhere]
- Added USE_RAW_ALPHA for BMP images#8602 [@radarhere]
- Fixed orientation when opening YCbCr TIFF images#8556 [@radarhere]
- Allow loading of EMF images at a given DPI#8536 [@radarhere]
- Skip failing records when rendering WMF images#8506 [@radarhere]
- If append_images is populated, default save_all to True#8781 [@radarhere]
- Added GimpPaletteFile frombytes() to allow for unlimited parsing#8826 [@radarhere]
- Do not load image during save if file extension is unknown#8835 [@radarhere]
- Do not convert BC1 LUT to UINT32#8837 [@radarhere]
- Start from zero index when reading GimpPaletteFile#8805 [@radarhere]
- Support saving DDS images with pixel formats#8807 [@radarhere]
- If every TIFF tile covers the image, only use the last offset#8820 [@radarhere]
- Use docker/setup-qemu-action#8819 [@radarhere]
- Replace deprecated Renovate schedule with cron syntax#8810 [@hugovk]
- Allow coords to be sequence of lists#8800 [@radarhere]
- Use ABCMeta in classes with abstractmethod#8803 [@radarhere]
- Support reading grayscale JPEG2000 images with 4 channels#8786 [@radarhere]
- Allow encoderconfig and encoderinfo to be set for appended TIFF images#8780 [@radarhere]
- Call
startswith
/endswith
once with a tuple, andrange
withoutstart=0
#8799 [@hugovk] - Corrected exif_transpose error when XMP is tuple#8792 [@radarhere]
- Fixed loading GD images#8793 [@radarhere]
- Image.core.outline will no longer raise an AttributeError#8794 [@radarhere]
- Removed ImageTk._show#8782 [@radarhere]
- _seek_check already raises an EOFError#8773 [@radarhere]
- Only set mode when necessary in FtexImagePlugin#8767 [@radarhere]
- Build PyPy3.11 wheel for macOS 10.15 x86_64#8789 [@hugovk]
- Replace slice and comparison with
startswith
/endswith
#8761 [@hugovk] - Use member names to initialize PyTypeObjects#8741 [@radarhere]
- Pass CFLAGS to build_simple directly#8738 [@radarhere]
- Only crop GIF frames when saving with disposal method 2 if transparency is present#8748 [@radarhere]
- Update
pythoncapi_compat.h
to fix building with PyPy3.11#8757 [@mgorny] - Rewrite the install_name of the ZLIB-NG library on macOS#8673 [@freakboy3742]
- Remove debug
Image._wedge
#8755 [@hugovk] - Remove unused
bdf_slant
andbdf_spacing
variables#8753 [@hugovk] - Use boolean format argument for irreversible#8739 [@radarhere]
- Simplify Python code by receiving tuple from C#8740 [@radarhere]
- Use member names to initialize modules#8734 [@radarhere]
- Simplify Python code by passing tuples to C#8733 [@radarhere]
- Removed re...
Assets2
Uh oh!
There was an error while loading.Please reload this page.
11.1.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/11.1.0.html
Documentation
- Added release notes for writing XMP bytes to JPEG and MPO#8627 [@radarhere]
- Added release notes for using zlib-ng instead of zlib#8599 [@radarhere]
- Replace python-pillow.org with python-pillow.github.io#8586 [@hugovk]
- ImageFile tile is never None#8582 [@radarhere]
- Only use start year in copyright, remove end years#8577 [@hugovk]
- Python 3.12 is tested on MinGW#8575 [@radarhere]
- Use brew formula to install libraqm#8574 [@radarhere]
- Added link to GitHub releases in CHANGES#8571 [@radarhere]
- Release drafter: move removals, deprecations, documentation up, and uncategorised changes last#8570 [@hugovk]
- Updated macOS tested Pillow versions#8538 [@radarhere]
- Use test image filename#8534 [@radarhere]
- Update Windows 11 Arm64 tested versions#8523 [@nulano]
- Move MPO into "Fully supported formats"#8504 [@radarhere]
- Update license to MIT-CMU#8490 [@radarhere]
Dependencies
- Update dependency mypy to v1.14.1#8643 [@renovate]
- Update dependency mypy to v1.14.0#8613 [@renovate]
- Updated libwebp to 1.5.0#8612 [@radarhere]
- Updated libXau to 1.0.12#8598 [@radarhere]
- Updated libjpeg-turbo to 3.1.0#8595 [@radarhere]
- Updated harfbuzz to 10.1.0#8533 [@radarhere]
- Updated openjpeg to 2.5.3#8591 [@radarhere]
- Update dependency cibuildwheel to v2.22.0#8580 [@renovate]
- Update codecov/codecov-action action to v5#8557 [@renovate]
- Migrate renovate config#8527 [@renovate]
- Update dependency mypy to v1.13.0#8491 [@renovate]
- Update dependency mypy to v1.12.1#8487 [@renovate]
Testing
- Added CentOS Stream 10#8646 [@radarhere]
- Use monkeypatch#8628 [@radarhere]
- Pass file handle to ContainerIO#8625 [@radarhere]
- Use register_handler#8499 [@radarhere]
- Use monkeypatch#8626 [@radarhere]
- Test libjpeg-turbo on macOS#8596 [@radarhere]
- Test 3.13t (free-threaded) from Quansight-Labs/setup-python on Linux and macOS#8565 [@hugovk]
- Run gcc problem matcher on Python 3.13#8541 [@radarhere]
- Add trove-classifiers>=2024.10.12 to 'tests' extra and use for Windows CI#8514 [@hugovk]
- Apply security fixes to GitHub Actions#8526 [@hugovk]
- Remove unused
gcov: true
for codecov-action@v4#8521 [@hugovk] - Added Fedora 41#8520 [@radarhere]
- Do not repeatedly save to the same path#8512 [@radarhere]
- Use fixture to re-open image for each JPEG2000 test#8484 [@radarhere]
- Fixed catching warnings#8505 [@radarhere]
- Updated test type hint#8482 [@radarhere]
- Removed Fedora 39#8466 [@radarhere]
Type hints
- Pass file handle to ContainerIO#8625 [@radarhere]
- Corrected loadImageSeries type hint#8624 [@radarhere]
- Removed quotes after dropping support for Python 3.8#8544 [@radarhere]
- Fixed type hint#8532 [@radarhere]
- Updated test type hint#8482 [@radarhere]
Other changes
- Corrected BLP1 alpha depth handling#8651 [@radarhere]
- Remove pre-C99 definitions#8644 [@radarhere]
- Allow saving as BigTIFF#8642 [@radarhere]
- Restored Makernote as a deprecated enum#8629 [@radarhere]
- Use elif#8641 [@radarhere]
- Add zizmor to pre-commit and fix potential cache-poisoning in wheels workflow#8638 [@hugovk]
- Keep new IFDs when converting EXIF to bytes#8635 [@radarhere]
- Added RGBX;16N to RGB unpacker#8637 [@radarhere]
- Populate JPEG DPI from JFIF cm density#8633 [@radarhere]
- Support saving CMYK JP2 images#8592 [@radarhere]
- Added reading of J2K comments#8622 [@radarhere]
- Removed variable#8631 [@radarhere]
- Do not use temporary file in ImageGrab.grabclipboard() on macOS#8630 [@radarhere]
- Fixed connecting discontiguous corners#8620 [@radarhere]
- Do not create new image when exif_transpose() is used in place#8555 [@radarhere]
- Added default values for _Tile offset and args#8553 [@radarhere]
- Platform guessing affects more than just Linux#8551 [@radarhere]
- Raise UnidentifiedImageError when opening TIFF without dimensions#8535 [@radarhere]
- Pass IFDs to libtiff as TIFF_LONG8#8529 [@radarhere]
- Do not save XMP from JPEG info#8483 [@radarhere]
- Include JpegImageFile layers in pickle state#8476 [@radarhere]
- Fixed indentation#8623 [@radarhere]
- Updated MakerNote capitalization#8615 [@radarhere]
- Replace constants with EXIF enums#8611 [@radarhere]
- Install libjpeg-turbo8-dev#8610 [@radarhere]
- Raise ValueError when WMF inch is zero#8600 [@radarhere]
- Extract tar files with "data" filter in Windows build scripts#8606 [@radarhere]
- Updated libjpeg-turbo URL#8608 [@radarhere]
- Derive dir from filename if root is the same in winbuild#8567 [@radarhere]
- Updated libjpeg-turbo and harfbuzz URLs#8604 [@radarhere]
- Do not describe raw data as a table#8579 [@radarhere]
- Improved handling of RGBA palettes when saving GIF images#8494 [@radarhere]
- Use .tar.gz zlib in Windows build to match macOS and Linux#8601 [@radarhere]
- Use zlib-ng instead of zlib#8500 [@nulano]
- Do not attempt to install cmake if it is already present#8593 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8578 [@pre-commit-ci]
- Updated build option error messages#8576 [@radarhere]
- Fix file position desync when calling into libtiff#8560 [@Knio]
- Do not attempt to install cmake a second time when building macOS or Linux wheels#8566 [@radarhere]
- Do not install Pyroma in MinGW, to use only system packages#8562 [@radarhere]
- Isolate macOS wheel builds from Homebrew#8497 [@freakboy3742]
- Removed use of os.path.realpath#8545 [@radarhere]
- Allow linking to zlib import library on Windows#8519 [@cubanpit]
- [pre-commit.ci] pre-commit autoupdate#8531 [@pre-commit-ci]
- Detach PyQt6 QPixmap instance before returning#8509 [@radarhere]
- Upgraded multibuild to remove openjpeg lib64 copy#8511 [@radarhere]
- brew remove libdeflate#8502 [@radarhere]
- Fix SEGFAULT from calling FT_New_Face/FT_Done_Face in multiple threads#8496 [@lysnikolaou]
- Corrected EMF DPI#8485 [@radarhere]
- Added filename placeholder in winbuild URL#8498 [@radarhere]
- Fix IFDRational with a zero denominator#8474 [@renovate]
- Fixed disabling a feature during install#8469 [@radarhere]
- Skip PyPy3.9 wheels#8467 [@radarhere]
- Removed unnecessary code#8465 [@radarhere]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
11.0.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/11.0.0.html
Removals
- Drop support for EOL PyPy3.9#8335 [@hugovk]
- Remove all WITH_* flags from _imaging.c and other flags#8211 [@homm]
- Remove unused _util.is_directory#8259 [@hugovk]
- Drop support for Python 3.8#8183 [@hugovk]
- Remove PSFile, PyAccess and USE_CFFI_ACCESS#8182 [@hugovk]
Deprecations
- Deprecate ICNS (width, height, scale) sizes in favour of load(scale)#8352 [@radarhere]
- Deprecate isImageType#8364 [@radarhere]
- Deprecate support for FreeType 2.9.0#8356 [@hugovk]
- Remove WebP support without anim, mux/demux, and with buggy alpha#8213 [@homm]
- Deprecate JpegImageFile huffman_ac and huffman_dc#8274 [@radarhere]
- Deprecate ImageMath lambda_eval and unsafe_eval options argument#8242 [@radarhere]
Changes
- Do not create core image in TIFF seek()#8392 [@radarhere]
- Removed custom build_openjpeg#8365 [@radarhere]
- Support writing LONG8 offsets in AppendingTiffWriter#8417 [@radarhere]
- Use ImageFile.MAXBLOCK when saving TIFF images#8461 [@radarhere]
- Always raise warnings for deprecated feature checks#8459 [@radarhere]
- Do not close provided file handles with libtiff when saving#8458 [@radarhere]
- Revert "Skip QEMU-emulated wheels on workflow dispatch event"#8455 [@radarhere]
- Support ImageFilter.BuiltinFilter for I;16* images#8438 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8448 [@pre-commit-ci]
- Use ImagingCore.ptr instead of ImagingCore.id#8341 [@homm]
- Simplified code#8445 [@radarhere]
- Removed unused code#8447 [@radarhere]
- Updated EPS mode when opening images without transparency#8281 [@Yay295]
- Use transparency when combining P frames from APNGs#8443 [@radarhere]
- Generate and upload attestations to PyPI#8441 [@hugovk]
- Do not convert images unnecessarily in ImageEnhance#8431 [@radarhere]
- Raise an error if path is compacted during mapping#8416 [@radarhere]
- Support all resampling filters when resizing I;16* images#8422 [@radarhere]
- Free memory on early return#8413 [@radarhere]
- Cast int before potentially exceeding INT_MAX#8402 [@radarhere]
- Prevent division by zero#8408 [@radarhere]
- Check image value before use#8400 [@radarhere]
- Use ruff check#8423 [@radarhere]
- Change harfbuzz versions in wheels#8421 [@radarhere]
- Use Capsule for WebP saving#8386 [@homm]
- Fixed writing multiple StripOffsets to TIFF#8317 [@Yay295]
- Updated macOS deployment target for PyPy on Intel to 10.15#8414 [@radarhere]
- Fix dereference before checking for NULL in ImagingTransformAffine#8398 [@PavlNekrasov]
- Use transposed size after opening for TIFF images#8390 [@radarhere]
- Improve ImageFont error messages#8338 [@yngvem]
- Mention MAX_TEXT_CHUNK limit in PNG error message#8391 [@radarhere]
- Cast Dib handle to int#8385 [@radarhere]
- Updated macOS deployment target for Python >= 3.12 on Intel to 10.13#8379 [@radarhere]
- Removed unused ImagePath variable#8377 [@radarhere]
- Change macos-14 to macos-latest#8376 [@radarhere]
- Accept float stroke widths#8369 [@radarhere]
- Remove comments#8370 [@radarhere]
- Removed libffi-dev#8368 [@radarhere]
- Improved handling of RGBA palettes when saving GIF images#8366 [@radarhere]
- Support converting more modes to LAB by converting to RGBA first#8358 [@radarhere]
- Optimize getbbox() and getextrema() routines#8194 [@homm]
- Removed unused TiffImagePlugin IFD_LEGACY_API#8355 [@radarhere]
- Handle duplicate EXIF header#8350 [@zakajd]
- Use (void) for empty function parameters#8002 [@Yay295]
- Return early from BoxBlur if either width or height is zero#8347 [@radarhere]
- Check text is either string or bytes#8308 [@radarhere]
- Added writing XMP bytes to JPEG#8286 [@radarhere]
- Require font parameter in FreeTypeFont and truetype()#8261 [@radarhere]
- Support JPEG2000 RGBA palettes#8256 [@radarhere]
- Expand C image to match GIF frame image size#8237 [@radarhere]
- Allow saving I;16 images as PPM#8231 [@radarhere]
- When IFD is missing, connect get_ifd() dictionary to Exif#8230 [@radarhere]
- Skip truncated ICO mask if LOAD_TRUNCATED_IMAGES is enabled#8180 [@radarhere]
- Treat unknown JPEG2000 colorspace as unspecified#8343 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8342 [@pre-commit-ci]
- Updated error message when saving WebP with invalid width or height#8322 [@radarhere]
- Remove warning if NumPy failed to raise an error during conversion#8326 [@radarhere]
- Move repeated code to private helper function#8310 [@Yay295]
- Get IPTC info from tag_v2#8315 [@radarhere]
- Log value from tag_v2 instead of tag#8306 [@radarhere]
- If left and right sides meet in ImageDraw.rounded_rectangle(), do not draw rectangle to fill gap#8304 [@radarhere]
- Add missing TIFF CMYK;16B reader#8298 [@homm]
- Fix undefined variable#8293 [@radarhere]
- Enforce CSV names style for
pytest.mark.parametrize
#8295 [@akx] - Fixed sign comparison warning#8294 [@radarhere]
- Move auxiliary mypy requirements to a requirements file#8289 [@akx]
- Removed unused variable#8288 [@radarhere]
- Improve ImageDraw2 shape methods#8265 [@radarhere]
- Lock around usages of imaging memory arenas#8238 [@lysnikolaou]
- Removed unused argument#8257 [@radarhere]
- Do not run scheduled wheel jobs on forks#8254 [@Yay295]
- Use local variable instead of casting every line#8248 [@Yay295]
- Change AlignAfterOpenBracket in .clang-format to BlockIndent#8067 [@Yay295]
- Move uploading nightly wheels to different job#8244 [@lysnikolaou]
- Skip QEMU-emulated wheels on workflow dispatch event#8243 [@lysnikolaou]
- Upload wheels to scientific-python-nightly-wheels index#8236 [@lysnikolaou]
- Temporarily disable cifuzz#8239 [@radarhere]
- Simplified code#8235 [@radarhere]
- Move away from APIs that use borrowed references under the free-threaded build#8216 [@hugovk]
- Build free-threaded wheels#8219 [@radarhere]
- Group aarch64 wheel jobs#8206 [@radarhere]
- Allow size argument to resize() to be a NumPy array#8201 [@radarhere]
- Add support for Python 3.13#8181 [@hugovk]
- Removed Debian 11#8185 [@radarhere]
Dependencies
- Update dependency cibuildwheel to v2.21.3#8453 [@renovate]
- Update dependency cibuildwheel to v2.21.2#8436 [@renovate]
- Updated xz to 5.6.3#8434 [@radarhere]
- Update scientific-python/upload-nightly-action action to v0.6.1#8430 [@renovate]
- Update scientific-python/upload-nightly-action action to v0.6.0#8425 [@renovate]
- Updated harfbuzz to 10.0.1 in remaining wheels#8424 [@radarhere]
- Improved copying imagequant libraries#8420 [@radarhere]
- Updated fribidi to 1.0.16#8419 [@radarhere]
- Updated harfbuzz to 10.0.1#8415 [@radarhere]
- Updated harfbuzz to 10.0.0#8411 [@radarhere]
- Shared imagequant libraries may be located within usr/lib64#8407 [@radarhere]
- winbuild: Build freetype.vcxproj to fix passing in custom parameters#8403 [@nulano]
- Updated raqm to 0.10.2#8404 [@radarhere]
- Updated Ghostscript to 10.4.0#8395 [@radarhere]
- Update dependency cibuildwheel to v2.21.1#8388 [@renovate]
- Updated libjpeg-turbo to 3.0.4#8384 [@radarhere]
- Update dependency cibuildwheel to v2.21.0#8378 [@renovate]
- Updated xz to 5.6.2#7916 [@radarhere]
- Updated libpng to 1.6.44#8375 [@radarhere]
- Updated harfbuzz to 9.0.0 in wheels, except for manylinux2014#8361 [@radarhere]
- Update deadsnakes/action action to v3.2.0#8360 [@renovate]
- Updated harfbuzz to 9.0.0#8344 [@radarhere]
- Updated libimagequant to 4.3.3#8284 [@radarhere]
- Updated freetype to 2.13.3#8302 [@radarhere]
- Update dependency mypy to v1.11.2#8334 [@renovate]
- [pre-commit.ci] pre-commit autoupdate#8287 [@pre-commit-ci]
- Update dependency cibuildwheel to v2.20.0#8282 [@renovate]
- Update dependency mypy to v1.11.1#8280 [@renovate]
- Update dependency mypy to v1.11.0#8252 [@renovate]
- Update dependency cibuildwheel to v2.19.2#8192 [@renovate]
- [pre-commit.ci] pre-commit autoupdate#8188 [@pre-commit-ci]
Documentation
- Update Python 3.13 release date#8463 [@hugovk]
- Update licence to MIT-CMU#8460 [@hugovk]
- Use CVE and CWE roles from Sphinx 8.1#8457 [@hugovk]
- Updated test environment documentation#8427 [@radarhere]
- Updated macOS tested Pillow versions#8429 [@radarhere]
- Updated link to OSS Fuzz issues#8399 [@radarhere]
- Added release notes for#8379#8381 [@radarhere]
- Windows wheels are now grouped with the others#8371 [@radarhere]
- Added release notes for#8199,#8213 and#8286#8367 [@radarhere]
- Restore exiv2.org links#8260 [@hugovk]
- Add tutorial images#8246 [@aclark4life]
- Updated macOS tested Pillow versions#8202 [@radarhere]
- Updated CVE URL#8186 [@radarhere]
Testing
- Fixed unclosed file warning in test_imageshow.py#8446 [@radarhere]
- Test Python 3.13 on AppVeyor#8442 [@hugovk]
- Test cifuzz when wheel dependencies change#8435 [@radarhere]
- Restore cifuzz#8428 [@radarhere]
- Use common test scripts for more tests#8396 [@Yay295]
- Lint: Run PT016#8382 [@radarhere]
- Test NumPy with musllinux wheels#8374 [@radarhere]
- Install NumPy from PyPI when testing wheels#8373 [@lysnikolaou]
- Install NumPy from PyPI for free threaded job#8372 [@radarhere]
- Canonical type comparison#8349 [@AryazE]
- Updated oss-fuzz to Python 3.10#8297 [@radarhere]
- Corrected GitHub Actions Windows Ghostscript path#8332 [@radarhere]
- Catch defusedxml warnings#8325 [@radarhere]
- Uninstall gradle and maven on macOS 13#8318 [@radarhere]
- Lint: run more flake8-pytest-style#8309 [@hugovk]
- Parametrize some color_lut tests for DRYness#8290 [@akx]
- Test 3.13 free-threaded build on CI#8200 [@hugovk]
- Test NumPy on Python 3.13#8189 [@hugovk]
Type hints
- Added type hints to remaining ImageMath methods#8464 [@radarhere]
- Conditionally define ImageCms type hint to avoid requiring core#8...
Assets2
Uh oh!
There was an error while loading.Please reload this page.
10.4.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/10.4.0.html
Deprecations
- Deprecate non-image ImageCms modes#8031 [@radarhere]
- Deprecate ImageDraw.getdraw hints parameter#8124 [@radarhere]
- Deprecate BGR;15, BGR;16 and BGR;24 modes#7978 [@radarhere]
- Deprecate support for libtiff < 4#7998 [@radarhere]
Changes
- Raise FileNotFoundError if show_file() path does not exist#8178 [@radarhere]
- Improved reading 16-bit TGA images with colour#7965 [@Yay295]
- Fixed processing multiple JPEG EXIF markers#8127 [@radarhere]
- Do not preserve EXIFIFD tag by default when saving TIFF images#8110 [@radarhere]
- Added ImageFont.load_default_imagefont()#8086 [@radarhere]
- Added Image.WARN_POSSIBLE_FORMATS#8063 [@radarhere]
- Do not presume "xmp" info simply because "XML:com.adobe.xmp" info exists#8173 [@radarhere]
- Remove zero-byte end padding when parsing any XMP data#8171 [@radarhere]
- Do not detect Ultra HDR images as MPO#8056 [@radarhere]
- Raise SyntaxError specific to JP2#8146 [@Yay295]
- Do not use first frame duration for other frames when saving APNG images#8104 [@radarhere]
- Consider I;16 pixel size when using a 1 mode mask#8112 [@radarhere]
- When saving multiple PNG frames, convert to mode rather than raw mode#8087 [@radarhere]
- Added byte support to FreeTypeFont#8141 [@radarhere]
- Allow float center for rotate operations#8114 [@radarhere]
- Do not read layers immediately when opening PSD images#8039 [@radarhere]
- Restore original thread state#8065 [@radarhere]
- Read IM and TIFF images as RGB, rather than RGBX#7997 [@radarhere]
- Only preserve TIFF IPTC_NAA_CHUNK tag if type is BYTE or UNDEFINED#7948 [@radarhere]
- Prevent extra EPS header validations#8144 [@Yay295]
- Clarify ImageDraw2 error message when size is missing#8165 [@radarhere]
- Support unpacking more rawmodes to RGBA palettes#7966 [@radarhere]
- Removed support for Qt 5#8159 [@radarhere]
- Improve
ImageFont.freetype
support for XDG directories on Linux#8135 [@mamg22] - Improved consistency of XMP handling#8069 [@radarhere]
- Use pkg-config to help find libwebp and raqm#8142 [@radarhere]
- Renamed C transform2 to transform#8113 [@radarhere]
- Updated nasm to 2.16.03#7990 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8100 [@pre-commit-ci]
- Updated ImageCms.createProfile colorTemp default and docstring#8096 [@radarhere]
- Added ImageDraw circle()#8085 [@void4]
- Don't reuse variable name#8082 [@Yay295]
- Use functools.cached_property in GifImagePlugin#8037 [@radarhere]
- Add mypy target to Makefile#8077 [@Yay295]
- Added Python 3.13 beta wheels#8071 [@radarhere]
- Parse _version contents instead of using exec()#8050 [@radarhere]
- Lint fixes#8068 [@radarhere]
- Fix type errors#8064 [@radarhere]
- Added MPEG accept function#7999 [@radarhere]
- Added more modes to Image.MODES#7984 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#8044 [@pre-commit-ci]
- Do not use percent format in strings#8045 [@radarhere]
- Changed string formatting to f-strings#8043 [@mrKazzila]
- Removed direct invocation of setup.py#8027 [@radarhere]
- Update ExifTags.py#8020 [@CTimmerman]
- Fix ImagingAccess for I;16N on big-endian#7921 [@Yay295]
- Combined conditions#8011 [@radarhere]
- Simplified RGB to I;16, I;16L and I;16B conversion#8008 [@radarhere]
- Extract band count check#8006 [@Yay295]
- Remove unused variable#8005 [@Yay295]
- Remove semicolon after function definition#8004 [@Yay295]
- Support reading P mode TIFF images with padding#7996 [@radarhere]
- Corrected ImageShow UnixViewer command#7987 [@radarhere]
- Removed CentOS Stream 8#7977 [@radarhere]
- Removed CentOS 7#7976 [@radarhere]
- dist directory is no longer created#7974 [@radarhere]
- Add support for reading BITMAPV2INFOHEADER and BITMAPV3INFOHEADER#7956 [@cirras]
- Update
make release-test
: no more eggs#7957 [@hugovk] - Make ModeDescriptor a NamedTuple#7951 [@Yay295]
- Support reading CMYK JPEG2000 images#7947 [@radarhere]
- Remove unused CMS properties and fix documentation#7931 [@Yay295]
- [pre-commit.ci] pre-commit autoupdate#7932 [@pre-commit-ci]
Dependencies
- Update dependency mypy to v1.10.1#8177 [@renovate]
- Update dependency cibuildwheel to v2.19.1#8143 [@renovate]
- Update dependency cibuildwheel to v2.19.0#8131 [@renovate]
- Updated libjpeg-turbo to 3.0.3#8048 [@radarhere]
- Updated fribidi to 1.0.15#8014 [@radarhere]
- Updated libwebp to 1.4.0#7973 [@radarhere]
- Updated libxcb and xcb-proto to 1.17.0#7982 [@radarhere]
- Updated libimagequant to 4.3.1#8025 [@radarhere]
- Updated harfbuzz to 8.5.0#8059 [@radarhere]
- Updated Ghostscript to 10.3.1#8078 [@radarhere]
- chore(deps): update dependency cibuildwheel to v2.18.1#8070 [@renovate]
- chore(deps): update dependency cibuildwheel to v2.18.0#8054 [@renovate]
- Update dependency mypy to v1.10.0#8013 [@renovate]
Documentation
- Converted example images to WebP#7963 [@radarhere]
- Use latest Ubuntu on Read The Docs#8136 [@radarhere]
- Use Sphinx long options in
Makefile
#8109 [@hugovk] - Removed documentation of unused argument#8079 [@radarhere]
- Updated CI targets table#8028 [@radarhere]
- Automatically add dates to release notes#8001 [@hugovk]
- Remove sphinx-removed-in, now Sphinx 7.3 adds versionremoved#7988 [@hugovk]
- Removed nitpick_ignore by updating Sphinx to 7.3#7985 [@radarhere]
- Updated installation links#7981 [@radarhere]
- Corrected packer comments#7964 [@Yay295]
- Release checklist: inline the 'Source and Binary Distributions' step#7959 [@hugovk]
- Removed outdated comment#7955 [@radarhere]
- Document that QoiImagePlugin uses Python for decoding#7937 [@radarhere]
- Updated macOS tested Pillow versions#7934 [@radarhere]
- Fix ImageMath documentation parameter names#7933 [@jbjd]
Testing
- Use more specific error#8168 [@radarhere]
- Ignore brew dependencies for libraqm on macOS 13#8140 [@radarhere]
- Corrected AppVeyor Ghostscript path#8138 [@radarhere]
- Accept 't' suffix for libtiff version#8129 [@radarhere]
- Accept 't' suffix for libtiff version#8126 [@radarhere]
- Add ClangFormat to pre-commit#8015 [@hugovk]
- Removed helper.py modes#8053 [@radarhere]
- Updated codecov/codecov-action to v4#8041 [@radarhere]
- Added Ubuntu 24.04#8023 [@radarhere]
- Corrected big-endian check#8022 [@radarhere]
- Use LAB hopper file if conversion is not supported#7979 [@radarhere]
- Removed Fedora 38 and added Fedora 40#8012 [@radarhere]
- Update tests to allow for zlib-ng#8009 [@radarhere]
- GitHub Actions: use
macos-13
ormacos-14
instead ofmacos-latest
#8010 [@hugovk] - Corrected check for libtiff feature#8000 [@radarhere]
- Corrected check for libtiff feature#7975 [@radarhere]
- Fix test error message grammar#7967 [@Yay295]
- Replace ImageMath.eval with ImageMath.lambda_eval in selftest.py#7960 [@radarhere]
- Rename test_roundtrip() to test_mode()#7950 [@Yay295]
- Updated pattern for skipping builds based on file changes#7938 [@radarhere]
- Corrected ImageCms test#7930 [@radarhere]
Type hints
- Simplified casts#8169 [@radarhere]
- Added type hints#8167 [@radarhere]
- Added type hints for PixelAccess related methods and others#8032 [@nulano]
- Added type hints to additional tests#8163 [@radarhere]
- Updated type hints#8153 [@radarhere]
- Added type hints to ImageFilter#8156 [@radarhere]
- Added type hints to ImageDraw shape methods#8151 [@radarhere]
- Added type hints to Image#8150 [@radarhere]
- Added type hints#8134 [@radarhere]
- Added type hints to additional tests#8118 [@radarhere]
- Added type hints#8132 [@radarhere]
- Added type hints to GifImagePlugin#8128 [@radarhere]
- Added type hints#8125 [@radarhere]
- Added type hints#8117 [@radarhere]
- Added type hints#8108 [@radarhere]
- Added type hints to ImageColor#8115 [@radarhere]
- Add various type annotations#8046 [@srittau]
- Added type hints#8107 [@radarhere]
- Added type hints#8105 [@radarhere]
- Added type hints#8066 [@radarhere]
- Added type hints#8099 [@radarhere]
- Corrected type hint#8098 [@radarhere]
- Updated type hints for tests#8095 [@radarhere]
- Added type hints to additional tests#8093 [@radarhere]
- Added type hints to additional tests#8091 [@radarhere]
- Added type hints to additional tests#8090 [@radarhere]
- Added type hints#8061 [@radarhere]
- Added type hints#8055 [@radarhere]
- Added type hints#8051 [@radarhere]
- Added type hints#8042 [@radarhere]
- Added type hints#8030 [@radarhere]
- Removed type hint ignores#7989 [@radarhere]
- fromarray: add type hints#7936 [@adamjstewart]
- Use functools.cached_property in ImageStat#7952 [@nulano]
- Add type hints for
Image.open
,Image.init
, andImage.Image.save
#7944 [@nulano]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
10.3.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/10.3.0.html
Deprecations
- Deprecate eval(), replacing it with lambda_eval() and unsafe_eval()#7927 [@hugovk]
- Deprecate ImageCms constants and versions() function#7702 [@nulano]
Changes
- CVE-2024-28219: Use strncpy to avoid buffer overflow#7928 [@hugovk]
- Use
functools.lru_cache
forhopper()
#7912 [@hugovk] - Raise ValueError if seeking to greater than offset-sized integer in TIFF#7883 [@radarhere]
- Improve speed of loading QOI images#7925 [@radarhere]
- Added RGB to I;16N conversion#7920 [@radarhere]
- Add --report argument tomain.py to omit supported formats#7818 [@nulano]
- Added RGB to I;16, I;16L and I;16B conversion#7918 [@radarhere]
- Fix editable installation with custom build backend and configuration options#7658 [@nulano]
- Fix putdata() for I;16N on big-endian#7209 [@Yay295]
- Determine MPO size from markers, not EXIF data#7884 [@radarhere]
- Improved conversion from RGB to RGBa, LA and La#7888 [@radarhere]
- Support FITS images with GZIP_1 compression#7894 [@radarhere]
- Use I;16 mode for 9-bit JPEG 2000 images#7900 [@scaramallion]
- Raise ValueError if kmeans is negative#7891 [@radarhere]
- Remove TIFF tag OSUBFILETYPE when saving using libtiff#7893 [@radarhere]
- Raise ValueError for negative values when loading P1-P3 PPM images#7882 [@radarhere]
- Added reading of JPEG2000 palettes#7870 [@radarhere]
- Added alpha_quality argument when saving WebP images#7872 [@radarhere]
- Fixed joined corners for ImageDraw rounded_rectangle() non-integer dimensions#7881 [@radarhere]
- Removed Python and NumPy pinning on Cygwin#7880 [@radarhere]
- Update UnidentifiedImageError andversion imports#7644 [@radarhere]
- Stop reading EPS image at EOF marker#7753 [@radarhere]
- PSD layer co-ordinates may be negative#7706 [@radarhere]
- Use subprocess with CREATE_NO_WINDOW flag in ImageShow WindowsViewer#7791 [@radarhere]
- When saving GIF frame that restores to background color, do not fill identical pixels#7788 [@radarhere]
- Fixed reading PNG iCCP compression method#7823 [@radarhere]
- Allow writing IFDRational to UNDEFINED tag#7840 [@radarhere]
- Fix logged tag name when loading Exif data#7842 [@radarhere]
- Use maximum frame size in IHDR chunk when saving APNG images#7821 [@radarhere]
- Prevent opening P TGA images without a palette#7797 [@radarhere]
- Use palette when loading ICO images#7798 [@radarhere]
- Use consistent arguments for load_read and load_seek#7713 [@radarhere]
- Turn off nullability warnings for macOS SDK#7827 [@radarhere]
- Fix shift-sign issue in Convert.c#7838 [@r-barnes]
- winbuild: Refactor dependency versions into constants#7843 [@hugovk]
- Build macOS arm64 wheels natively#7852 [@radarhere]
- Fixed typo#7855 [@radarhere]
- Open 16-bit grayscale PNGs as I;16#7849 [@radarhere]
- Handle truncated chunks at the end of PNG images#7709 [@lajiyuan]
- Match mask size to pasted image size in GifImagePlugin#7779 [@radarhere]
- Changed SupportsGetMesh protocol to be public#7841 [@radarhere]
- Release GIL while calling
WebPAnimDecoderGetNext
#7782 [@evanmiller] - Fixed reading FLI/FLC images with a prefix chunk#7804 [@twolife]
- Updated package name for Tidelift#7810 [@radarhere]
- Removed unused code#7744 [@radarhere]
- Lint fix#7783 [@radarhere]
- Update wl-paste handling and return None for some errors in grabclipboard() on Linux#7745 [@nik012003]
- Fixed libXau error in wheels for macOS 10.10#7764 [@radarhere]
- Changed name of first _Tile parameter#7772 [@radarhere]
- Remove execute bit from
setup.py
#7760 [@hugovk] - Changed ImageMath.ops to be static#7721 [@radarhere]
- Fix APNG info after seeking backwards more than twice#7701 [@esoma]
- Removed PPM loop to read header tokens#7698 [@radarhere]
- Added PerspectiveTransform#7699 [@radarhere]
- Add support for reading and writing grayscale PFM images#7696 [@nulano]
- Add LCMS2 flags to ImageCms#7676 [@nulano]
- Rename x64 to AMD64 in winbuild#7693 [@nulano]
- Build QEMU-emulated Linux aarch64 wheels on GitHub Actions instead of Travis CI#7690 [@hugovk]
- Simplify FreeTypeFont.getmask2()#7645 [@nulano]
- Updated Linux and macOS wheels matrix variable name#7691 [@radarhere]
- Skip PyPy3.8 Windows wheel#7682 [@radarhere]
Documentation
- Add type hints to release notes#7923 [@hugovk]
- Corrected exiv2.org links#7856 [@radarhere]
- Removed references to the "current version"#7905 [@radarhere]
- Added release notes for#7872,#7882 and#7891#7904 [@radarhere]
- Clean up authors and contributors#7895 [@aclark4life]
- Update release notes#7885 [@hugovk]
- Backfill release notes with security fix details#7877 [@aclark4life]
- Describe difference between font size and bbox#7806 [@radarhere]
- Decoders and encoders subclass PyDecoder and PyEncoder#7801 [@radarhere]
- Update CI targets on GitHub Actions#7862 [@hugovk]
- Update "What about PIL?" section#7861 [@aclark4life]
- Update installation docs#7858 [@hugovk]
- Move installation.rst to installation/*.rst#7832 [@aclark4life]
- Removed references to Twitter#7836 [@radarhere]
- Consistently place versionremoved under heading#7829 [@radarhere]
- Remove outdated installation warnings#7814 [@hugovk]
- PyPI project page URL is now lowercase#7703 [@nulano]
- Use "non-zero" consistently#7695 [@radarhere]
- Improve ImageTransform documentation#7684 [@nulano]
- If ImageGrab.grab() bbox is omitted, screenshot is taken at 2x on Retina screens#7688 [@radarhere]
- Updated macOS tested Pillow versions#7689 [@radarhere]
- Update Windows 11 tested versions#7685 [@nulano]
- ImageGrab.grab() bbox on macOS is not 2x on retina screens#7678 [@radarhere]
- Package name is now lowercase in wheel filenames#7681 [@radarhere]
Type hints
- Add type hints for ImageCms#7913 [@nulano]
- Add type hints to
Image.py
#7924 [@hugovk] - Add type hints to release notes#7923 [@hugovk]
- Added
py.typed
andTyping :: Typed
to support type checking#7822 [@radarhere] - Added remaining type hints to Tests/test_image_*.py#7793 [@radarhere]
- Added type hints for ImageShow#7712 [@radarhere]
- Added type hints to additional tests#7754 [@radarhere]
- Added type hints to additional tests#7755 [@radarhere]
- Added type hints to additional tests#7769 [@radarhere]
- Added type hints to additional tests#7784 [@radarhere]
- Added type hints to additional tests#7794 [@radarhere]
- Added type hints to additional tests#7807 [@radarhere]
- Added type hints to additional tests#7816 [@radarhere]
- Added type hints to additional tests#7846 [@radarhere]
- Added type hints to FitsImagePlugin#7714 [@radarhere]
- Added type hints to GdImageFile#7727 [@radarhere]
- Added type hints to ImageMath#7707 [@radarhere]
- Added type hints to ImageMorph#7708 [@radarhere]
- Added type hints to ImageOps#7786 [@radarhere]
- Added type hints to ImtImagePlugin#7720 [@radarhere]
- Added type hints to MpegImagePlugin#7728 [@radarhere]
- Added type hints to MspImagePlugin#7719 [@radarhere]
- Added type hints to OSS Fuzz scripts#7731 [@radarhere]
- Added type hints to PpmImagePlugin#7726 [@radarhere]
- Added type hints to seven plugins#7716 [@radarhere]
- Added type hints to SgiImagePlugin#7724 [@radarhere]
- Added type hints to Tests/check_*.py#7732 [@radarhere]
- Added type hints to Tests/conftest.py#7740 [@radarhere]
- Added type hints to Tests/helper.py#7733 [@radarhere]
- Added type hints to Tests/test_font_*.py#7743 [@radarhere]
- Added type hints to TgaImagePlugin#7725 [@radarhere]
- Autotype tests#7756 [@hugovk]
- Decoders and encoders subclass PyDecoder and PyEncoder#7801 [@radarhere]
- Removed mypy excludes#7808 [@radarhere]
- Removed mypy excludes, except for olefile-related files#7790 [@radarhere]
- Replace
io.BytesIO
in type hints#7750 [@hugovk] - Type hints: Add PYI (flake8-pyi) to Ruff and fix errors#7897 [@hugovk]
- Use IO[bytes] in type hints#7795 [@radarhere]
Dependencies
[pre-commit.ci] pre-commit autoupdate and fix deprecations#7780 [@pre-commit-ci]
Update release-drafter/release-drafter action to v6#7774 [@renovate]
Updated Ghostscript to 10.3.0#7887 [@radarhere]
Updated giflib on macOS to 5.2.2#7815 [@radarhere]
Updated harfbuzz to 8.3.1#7886 [@radarhere]
Updated harfbuzz to 8.4.0#7917 [@radarhere]
Updated libimagequant to 4.3.0#7749 [@radarhere]
Updated libjpeg-turbo to 3.0.2#7752 [@radarhere]
Updated libpng to 1.6.43#7768 [@radarhere]
Updated libxcb to 1.16.1#7853 [@radarhere]
Updated openjpeg to 2.5.2#7837 [@radarhere]
Updated xorgproto to 2024.1#7907 [@radarhere]
Updated zlib to 1.3.1#7746 [@radarhere]
Testing
Use setup_module() to open images so they aren't opened if skipped#7911 [@Yay295]
Revert "Pin Python 3.13 on Windows to a3"#7878 [@radarhere]
Restored testing of non-TrueType default font#7748 [@radarhere]
Do not use packaged MinGW pip#7844 [@radarhere]
Require coverage.py 7.4.2+ for
COVERAGE_CORE: sysmon
#7825 [@hugovk]Set
COVERAGE_CORE: sysmon
for faster tests on 3.12+#7820 [@hugovk]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
10.2.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/10.2.0.html
Deprecations
- Deprecate IptcImagePlugin helpers#7664 [@nulano]
- Translate encoder error codes to strings; deprecate
ImageFile.raise_oserror()
#7609 [@bgilbert]
Changes
- Add
keep_rgb
option when saving JPEG to prevent conversion of RGB colorspace#7553 [@bgilbert] - Trim negative glyph offsets in ImageFont.getmask()#7672 [@nulano]
- Removed unnecessary "pragma: no cover"#7668 [@radarhere]
- Trim glyph size in ImageFont.getmask()#7669 [@radarhere]
- Fix loading IPTC images and update test#7667 [@nulano]
- Allow uncompressed TIFF images to be saved in chunks#7650 [@radarhere]
- Concatenate multiple JPEG EXIF markers#7496 [@radarhere]
- Changed IPTC tile tuple to match other plugins#7661 [@radarhere]
- Do not assign new fp attribute when exiting context manager#7566 [@radarhere]
- Support arbitrary masks for uncompressed RGB DDS images#7589 [@radarhere]
- Support setting ROWSPERSTRIP tag#7654 [@radarhere]
- Apply ImageFont.MAX_STRING_LENGTH to ImageFont.getmask()#7662 [@radarhere]
- Optimise
ImageColor
usingfunctools.lru_cache
#7657 [@hugovk] - Restricted environment keys for ImageMath.eval()#7655 [@radarhere]
- Optimise
ImageMode.getmode
usingfunctools.lru_cache
#7641 [@hugovk] - Added trusted PyPI publishing#7616 [@radarhere]
- Compile FriBiDi for Windows ARM64#7629 [@nulano]
- Fix incorrect color blending for overlapping glyphs#7497 [@ZachNagengast]
- Add .git-blame-ignore-revs file#7528 [@akx]
- Attempt memory mapping when tile args is a string#7565 [@radarhere]
- Fill identical pixels with transparency in subsequent frames when saving GIF#7568 [@radarhere]
- Removed unnecessary string length check#7560 [@radarhere]
- Determine mask mode in Python instead of C#7548 [@radarhere]
- Corrected duration when combining multiple GIF frames into single frame#7521 [@radarhere]
- Handle disposing GIF background from outside palette#7515 [@radarhere]
- Seek past the data when skipping a PSD layer#7483 [@radarhere]
- ImageMath: Inline
isinstance
check#7623 [@hugovk] - Update actions/upload-artifact action to v4#7619 [@radarhere]
- Import plugins relative to the module#7576 [@deliangyang]
- Updated readthedocs to latest version of Python#7611 [@radarhere]
- Support reading BC4U and DX10 BC1 images#6486 [@REDxEYE]
- Optimize ImageStat.Stat.extrema#7593 [@florath]
- Handle pathlib.Path in FreeTypeFont#7578 [@radarhere]
- Use list comprehensions to create transformed lists#7597 [@hugovk]
- Added support for reading DX10 BC4 DDS images#7603 [@sambvfx]
- Optimized ImageStat.Stat.count#7599 [@florath]
- Moved error from truetype() to FreeTypeFont#7587 [@radarhere]
- Correct PDF palette size when saving#7555 [@radarhere]
- Fixed closing file pointer with olefile 0.47#7594 [@radarhere]
- ruff: Minor optimizations of list comprehensions, x in set, etc.#7524 [@cclauss]
- Build Windows wheels using cibuildwheel#7580 [@nulano]
- Raise ValueError when TrueType font size is zero or less#7584 [@akx]
- Install cibuildwheel from requirements file#7581 [@hugovk]
- List optional dependencies in pyproject (apart from docs and tests)#7563 [@radarhere]
- Use cibuildwheel#7552 [@radarhere]
- "optimize" default when saving GIF images#7570 [@radarhere]
- If absent, do not try to close fp when closing image#7557 [@RaphaelVRossi]
- Windows arm64 dependency cross-compilation fixes#7559 [@nulano]
- Allow configuring JPEG restart marker interval on save#7488 [@bgilbert]
- Decrement reference count for PyObject#7549 [@radarhere]
- Release automation: create sdist on CI#7544 [@hugovk]
- Fix for Python 3.13: explicitly include
unistd.h
#7535 [@hugovk] - Remove old commented-out code#7527 [@akx]
- Implement
streamtype=1
option for tables-only JPEG encoding#7491 [@bgilbert] - DOC: Add missing sections to FREETYPE2.txt#7507 [@stefan6419846]
- If save_all PNG only has one frame, do not create animated image#7522 [@radarhere]
- Fixed frombytes() for images with a zero dimension#7493 [@radarhere]
- Update Travis CI to Python 3.12 and Ubuntu 22.04 Jammy Jellyfish#7501 [@hugovk]
- Simplified code#7499 [@radarhere]
- Switched from direct setup.py invocation to "pip install ."#7498 [@radarhere]
- Add mode to ImageOps._lut() error message#7490 [@Yay295]
- Move config from
setup.cfg
topyproject.toml
#7484 [@hugovk] - Use "gray" more consistently#7481 [@radarhere]
- Added messages to errors#7480 [@radarhere]
Dependencies
- [pre-commit.ci] pre-commit autoupdate#7675 [@pre-commit-ci]
- Update github-actions#7607 [@renovate]
- [pre-commit.ci] pre-commit autoupdate#7602 [@pre-commit-ci]
- Updated lcms2 to 2.16#7598 [@radarhere]
- Updated harfbuzz to 8.3.0#7475 [@radarhere]
- Updated xz to 5.4.5#7513 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#7525 [@pre-commit-ci]
- Updated libjpeg-turbo to 3.0.1#7472 [@radarhere]
Documentation
- Fix image URL in "Reading from URL" example#7674 [@nulano]
- Release notes: add
ImageColor
andImageMode
optimisations, and type hints#7665 [@hugovk] - Added release notes for#7589 and#7654#7670 [@radarhere]
- Updated copyright year#7663 [@radarhere]
- Updated RELEASING now that Trusted PyPI publishing is in use#7652 [@radarhere]
- Add 'Type hints' as a release note category#7653 [@hugovk]
- Document JPEG 2000 support for writing YCbCr and reading subsampled color#7636 [@bgilbert]
- Clarify default anchor alignment#7600 [@nulano]
- Added release notes#7608 [@radarhere]
- Added release notes for#7599 and#7593#7605 [@radarhere]
- Document JPEG
streamtype
option#7601 [@bgilbert] - Update Windows wheels info#7590 [@radarhere]
- Docs: Activate tabs based on browser's operating system#7579 [@hugovk]
- Updated wheels README after cibuildwheel integration#7572 [@radarhere]
- Use --config-settings in external libraries list in installation.rst#7564 [@nulano]
- Docs: tcl/tk is no longer a build dependency#7562 [@radarhere]
- Add Windows 11 tested Pillow versions#7558 [@nulano]
- Docs: link exceptions to Python docs#7512 [@hugovk]
- AddCVE-2023-44271 to release notes#7520 [@hugovk]
- Mention defusedxml and olefile in installation instructions#7509 [@radarhere]
- Docs: Add
pypi
Sphinx role#7505 [@hugovk] - Improved olefile documentation and testing#7503 [@radarhere]
- Add Python 3.12 support to Pillow 10.1.0 release notes#7466 [@hugovk]
- Updated macOS tested Pillow versions#7470 [@radarhere]
- Fix typos in ImageOps.rst and tutorial.rst#7469 [@nulano]
- Update release checklist: macOS/Linux artifact is called 'wheels'#7467 [@hugovk]
Testing
- Coverage: add more exclusions#7666 [@hugovk]
- Add gcc problem matcher to test.yml#7585 [@nulano]
- Restored testing of ImageFont class#7647 [@radarhere]
- Check types with mypy#7622 [@hugovk]
- Update pre-commit to fix Sphinx Lint#7615 [@hugovk]
- Fix up most noqas#7526 [@akx]
- Tests: Replace
assert False
withpytest.fail()
#7546 [@hugovk] - Test Fedora 39#7542 [@hugovk]
- Black and Ruff infer
target-version
fromrequires-python
inpyproject.toml
#7530 [@hugovk] - Move linting to ruff#6966 [@akx]
- Removed Fedora 37#7516 [@radarhere]
- Updated AppVeyor to Python 3.12#7508 [@radarhere]
- Improved olefile documentation and testing#7503 [@radarhere]
- Skip non-wheel CI runs for tags#7468 [@hugovk]
Type hints
- Added type hints to ImageTransform#7671 [@radarhere]
- Add type hints to _util#7642 [@nulano]
- Add type hints to _binary#7659 [@nulano]
- Add type hints to ContainerIO#7656 [@nulano]
- Removed
__future__
import from fuzz_font.py and fuzz_pillow.py#7649 [@radarhere] - Added type hints to FontFile and subclasses#7643 [@radarhere]
- Added type hints to selftest.py, docs/conf.py and docs/example/anchors.py#7640 [@radarhere]
- Added TarIO type hints#7638 [@radarhere]
- Moved
__future__
import to beginning of file#7637 [@radarhere] - Added type hints to ImageSequence#7635 [@radarhere]
- Add type hints for ImageMode#7633 [@hugovk]
- Add
from __future__ import annotations
using Ruff/isort#7631 [@hugovk] - Check types with mypy#7622 [@hugovk]
- Added type hints for format and format_description#7624 [@radarhere]
- Added type hints to ImageChops#7617 [@radarhere]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
10.1.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/10.1.0.html
Changes
- Added TrueType default font to allow for different sizes#7354 [@radarhere]
- Fixed invalid argument warning#7442 [@radarhere]
- Fixed "may be used uninitialized" warning#7444 [@radarhere]
- Added ImageOps cover method#7412 [@radarhere]
- Catch struct.error from truncated EXIF when reading JPEG DPI#7458 [@radarhere]
- Consider default image when selecting mode for PNG save_all#7437 [@radarhere]
- Use new() instead of Image()._new()#7460 [@radarhere]
- Fix libbrotli build for Windows wheels#7453 [@nulano]
- Allow custom builds to be triggered in Travis CI#7449 [@radarhere]
- Support BGR;15, BGR;16 and BGR;24 access, unpacking and putdata#7303 [@radarhere]
- Added CMYK to RGB unpacker#7310 [@radarhere]
- Improved flexibility of XMP parsing#7274 [@radarhere]
- Support reading 8-bit YCbCr TIFF images#7415 [@radarhere]
- Allow saving I;16B images as PNG#7302 [@radarhere]
- Corrected drawing I;16 points and writing I;16 text#7257 [@radarhere]
- Set blue channel to 128 for BC5S#7413 [@radarhere]
- Increase flexibility when reading IPTC fields#7319 [@radarhere]
- Set C palette to be empty by default#7289 [@radarhere]
- Moved getmask2 MAX_IMAGE_PIXELS check to Python#7247 [@radarhere]
- Added gs_binary to control Ghostscript use on all platforms#7392 [@radarhere]
- Updated multibuild to include Python 3.12.0#7440 [@radarhere]
- Don't run normal tests on changes to wheel-building files#7436 [@hugovk]
- Move code from pillow-wheels#7418 [@radarhere]
- Removed unused code#7434 [@radarhere]
- Read bounding box information from the trailer of EPS files if specified#7382 [@nopperl]
- Added reading 8-bit color DDS images#7426 [@radarhere]
- Added has_transparency_data#7420 [@radarhere]
- Revert#7311: "Read WebP duration after opening"#7406 [@radarhere]
- Fixed bug when reading BC5S DDS images#7401 [@radarhere]
Dependencies
- Updated libimagequant to 4.2.2#7463 [@radarhere]
- Updated libtiff to 4.6.0#7452 [@radarhere]
- Updated brotli to 1.1.0#7451 [@radarhere]
- Updated harfbuzz to 8.2.1#7409 [@radarhere]
- Updated PyPy to 7.3.13#7439 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#7438 [@pre-commit-ci]
Documentation
- Describe how to populate mode and size when writing a plugin#7465 [@radarhere]
- Updated redirected links#7448 [@radarhere]
- Add warning to docs: Pillow > 9.5.0 no longer includes 32-bit wheels#7447 [@aclark4life]
- Added release notes for#7336,#7355,#7358 and#7392#7446 [@radarhere]
- Corrected macOS version name#7431 [@radarhere]
- Updated macOS tested Pillow versions#7430 [@radarhere]
- Improved init(), preinit() and register_mime() documentation#7399 [@radarhere]
- Updated macOS tested Pillow versions#7400 [@radarhere]
Testing
- Test Python 3.12 final in GitHub Actions#7441 [@radarhere]
- Add checks to pre-commit#7421 [@hugovk]
- AppVeyor: don't download huge pillow-depends.zip#7407 [@hugovk]
- NumPy now supports Python 3.12#7403 [@radarhere]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
10.0.1
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/10.0.1.html
Changes
- Updated libwebp to 1.3.2#7395 [@radarhere]
- Updated zlib to 1.3#7344 [@radarhere]
Assets2
Uh oh!
There was an error while loading.Please reload this page.
10.0.0
Compare
https://pillow.readthedocs.io/en/stable/releasenotes/10.0.0.html
Removals
- Remove deprecated ImageFont.getsize and related functions for Pillow 10.0.0#7080 [@radarhere]
- Remove deprecations for Pillow 10.0.0#7059 [@hugovk]
- Drop support for soon-EOL Python 3.7#7058 [@hugovk]
Deprecations
- Do not use CFFI access by default on PyPy#7236 [@radarhere]
Changes
- Fixed deallocating mask images#7246 [@radarhere]
- Added ImageFont.MAX_STRING_LENGTH#7244 [@radarhere]
- Fix Windows build with pyproject.toml#7230 [@nulano]
- Do not close provided file handles with libtiff#7199 [@radarhere]
- Convert to HSV if mode is HSV in getcolor()#7226 [@radarhere]
- Added alpha_only argument to getbbox()#7123 [@radarhere]
- Prioritise speed inrepr_png#7242 [@radarhere]
- Limit size even if one dimension is zero in decompression bomb check#7235 [@radarhere]
- Restored 32-bit support#7234 [@radarhere]
- Removed deleted file from codecov.yml and increased coverage threshold#7232 [@radarhere]
- Removed support for 32-bit#7228 [@radarhere]
- Use --config-settings instead of deprecated --global-option#7171 [@radarhere]
- Better C integer definitions#6645 [@Yay295]
- Fixed finding dependencies on Cygwin#7175 [@radarhere]
- Improved checks in font_render#7218 [@radarhere]
- Change
grabclipboard()
to use PNG compression on macOS#7219 [@abey79] - Added PyPy 3.10 and removed PyPy 3.8#7216 [@radarhere]
- Added in_place argument to ImageOps.exif_transpose()#7092 [@radarhere]
- Corrected error code#7177 [@radarhere]
- Use "not in"#7174 [@radarhere]
- Only call text_layout once in getmask2#7206 [@radarhere]
- Fixed calling putpalette() on L and LA images before load()#7187 [@radarhere]
- Removed unused INT64 definition#7180 [@radarhere]
- Updated xz to 5.4.3#7136 [@radarhere]
- Fixed saving TIFF multiframe images with LONG8 tag types#7078 [@radarhere]
- Do not set size unnecessarily if image fails to open#7056 [@radarhere]
- Removed unused code#7210 [@radarhere]
- Removed unused variables#7205 [@radarhere]
- Fixed signedness comparison warning#7203 [@radarhere]
- Fixed combining single duration across duplicate APNG frames#7146 [@radarhere]
- Remove temporary file when error is raised#7148 [@radarhere]
- Do not use temporary file when grabbing clipboard on Linux#7200 [@radarhere]
- If the clipboard fails to open on Windows, wait and try again#7141 [@radarhere]
- Fixed saving multiple 1 mode frames to GIF#7181 [@radarhere]
- Replaced absolute PIL import with relative import#7173 [@radarhere]
- Removed files and types override#7194 [@radarhere]
- Removed duplicate config#7193 [@radarhere]
- Replaced deprecated Py_FileSystemDefaultEncoding for Python >= 3.12#7192 [@radarhere]
- Improved wl-paste mimetype handling in ImageGrab#7094 [@rrcgat]
- Updated redirected URLs#7178 [@radarhere]
- Addedrepr_jpeg() for IPython display_jpeg#7135 [@n3011]
- Use "/sbin/ldconfig" if ldconfig is not found#7068 [@radarhere]
- Prefer screenshots using XCB over gnome-screenshot#7143 [@nulano]
- Fixed joined corners for ImageDraw rounded_rectangle() odd dimensions#7151 [@radarhere]
- Support reading signed 8-bit TIFF images#7111 [@radarhere]
- Added width argument to ImageDraw regular_polygon#7132 [@radarhere]
- Support I mode for ImageFilter.BuiltinFilter#7108 [@radarhere]
- Raise error from stderr of Linux ImageGrab.grabclipboard() command#7112 [@radarhere]
- Updated libimagequant to 4.2.0#7128 [@radarhere]
- Added unpacker from I;16B to I;16#7125 [@radarhere]
- Use stdlib for setuptools on MinGW#7131 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#7129 [@pre-commit-ci]
- Support float font sizes#7107 [@radarhere]
- Use later value for duplicate xref entries in PdfParser#7102 [@radarhere]
- Load before getting size ingetstate#7105 [@bigcat88]
- Added Fedora 38#7109 [@radarhere]
- Removed duplicate code#7106 [@radarhere]
- Remove use of deprecated OpenJPEG "bpp" member#7090 [@radarhere]
- Select Python version in Cygwin#7091 [@radarhere]
- Updated nasm to 2.16.01#7089 [@radarhere]
- Update vendored Raqm to 0.10.1#7087 [@nulano]
- 10.0.0.dev0 version bump#7057 [@radarhere]
- Fixed type handling for include and lib directories#7069 [@adisbladis]
- Do not install PyQt6-Qt6 6.5.0#7081 [@radarhere]
- Removed FIXME comment#7072 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate#7063 [@pre-commit-ci]
Dependencies
- Updated libtiff to 4.5.1#7233 [@radarhere]
- Updated libwebp to 1.3.1#7238 [@radarhere]
- Updated freetype to 2.13.1#7231 [@radarhere]
- Updated fribidi to 1.0.13#7166 [@radarhere]
- Updated harfbuzz to 7.3.0#7152 [@radarhere]
- Updated harfbuzz to 7.2.0#7118 [@radarhere]
- Update cygwin/cygwin-install-action action to v4#7099 [@renovate]
- Updated raqm to 0.10.1#7088 [@radarhere]
Documentation
- Added release notes for#7123#7243 [@radarhere]
Image.open()
seeks to the start of file objects#7097 [@radarhere]- Added release notes for#7235#7239 [@radarhere]
- Update Image.show docs to list all viewers used on Linux#7229 [@RoziePlaysPython]
- Document how to install on MinGW when setuptools >= 60#7224 [@radarhere]
- Clarify that the changelog should not be updated in PRs#7220 [@radarhere]
- Moved QOI from Write-Only to Read-Only#7212 [@radarhere]
- Improved documention of "corners" argument for rounded_rectangle#7211 [@radarhere]
- Removed rectangle example from co-ordinate system documentation#7169 [@radarhere]
- Document order of kernel weights#7204 [@radarhere]
- Build only PDF in addition to default html#7164 [@hugovk]
- ImageGrab grabclipboard() is supported on Linux#7160 [@radarhere]
- Clarify that line() and polygon() include xy pixels#7142 [@radarhere]
- Updated redirected URL#7157 [@radarhere]
- Updated ImagePath tolist() default#7138 [@radarhere]
- Added release notes for#7132#7134 [@radarhere]
- Build all readthedocs formats#7116 [@radarhere]
- Updated macOS tested Pillow versions#7103 [@radarhere]
- Fix typo#7101 [@hugovk]
- Release refinement#7074 [@hugovk]
- Improve ImageEnhance factor documentation#7065 [@radarhere]
Testing
- bench_cffi_access print formatting#7227 [@Yay295]
- Add Debian 12 Bookworm#7208 [@hugovk]
- Fix Python 3.12 failures#7188 [@radarhere]
- Test lists and tuples#6949 [@Yay295]
- Test both lists and tuples as qtables arguments#6900 [@Yay295]
- More ImagePath tests#6904 [@Yay295]
- Removed Ubuntu 18.04 docker image#7115 [@radarhere]
- Removed Fedora 36#7098 [@radarhere]
- Fix codecov after they deleted the Python package from PyPI#7085 [@hugovk]
- Install libxcb-cursor0#7083 [@radarhere]
- Add release check to make sure no TODOs remain in release notes#7075 [@hugovk]
Assets2
Uh oh!
There was an error while loading.Please reload this page.