Sourced from pillow's\nreleases.
\n\n\n10.2.0
\nhttps://pillow.readthedocs.io/en/stable/releasenotes/10.2.0.html
\nChanges
\n\n
\n\n- Add
\nkeep_rgb
option when saving JPEG to prevent\nconversion of RGB colorspace #7553\n[@bgilbert
]- Trim negative glyph offsets in ImageFont.getmask() #7672\n[
\n@nulano
]- Removed unnecessary "pragma: no cover" #7668\n[
\n@radarhere
]- Trim glyph size in ImageFont.getmask() #7669\n[
\n@radarhere
]- Fix loading IPTC images and update test #7667\n[
\n@nulano
]- Allow uncompressed TIFF images to be saved in chunks #7650\n[
\n@radarhere
]- Concatenate multiple JPEG EXIF markers #7496\n[
\n@radarhere
]- Changed IPTC tile tuple to match other plugins #7661\n[
\n@radarhere
]- Do not assign new fp attribute when exiting context manager #7566\n[
\n@radarhere
]- Support arbitrary masks for uncompressed RGB DDS images #7589\n[
\n@radarhere
]- Support setting ROWSPERSTRIP tag #7654\n[
\n@radarhere
]- Apply ImageFont.MAX_STRING_LENGTH to ImageFont.getmask() #7662\n[
\n@radarhere
]- Optimise
\nImageColor
using\nfunctools.lru_cache
#7657\n[@hugovk
]- Restricted environment keys for ImageMath.eval() #7655\n[
\n@radarhere
]- Optimise
\nImageMode.getmode
using\nfunctools.lru_cache
#7641\n[@hugovk
]- Added trusted PyPI publishing #7616\n[
\n@radarhere
]- Compile FriBiDi for Windows ARM64 #7629\n[
\n@nulano
]- Fix incorrect color blending for overlapping glyphs #7497\n[
\n@ZachNagengast
]- Add .git-blame-ignore-revs file #7528\n[
\n@akx
]- Attempt memory mapping when tile args is a string #7565\n[
\n@radarhere
]- Fill identical pixels with transparency in subsequent frames when\nsaving GIF #7568\n[
\n@radarhere
]- Removed unnecessary string length check #7560\n[
\n@radarhere
]- Determine mask mode in Python instead of C #7548\n[
\n@radarhere
]- Corrected duration when combining multiple GIF frames into single\nframe #7521\n[
\n@radarhere
]- Handle disposing GIF background from outside palette #7515\n[
\n@radarhere
]- Seek past the data when skipping a PSD layer #7483\n[
\n@radarhere
]- ImageMath: Inline
\nisinstance
check #7623\n[@hugovk
]- Update actions/upload-artifact action to v4 #7619\n[
\n@radarhere
]- Import plugins relative to the module #7576\n[
\n@deliangyang
]- Translate encoder error codes to strings; deprecate\n
\nImageFile.raise_oserror()
#7609\n[@bgilbert
]- Updated readthedocs to latest version of Python #7611\n[
\n@radarhere
]- Support reading BC4U and DX10 BC1 images #6486\n[
\n@REDxEYE
]- Optimize ImageStat.Stat.extrema #7593\n[
\n@florath
]- Handle pathlib.Path in FreeTypeFont #7578\n[
\n@radarhere
]- Use list comprehensions to create transformed lists #7597\n[
\n@hugovk
]- Added support for reading DX10 BC4 DDS images #7603\n[
\n@sambvfx
]- Optimized ImageStat.Stat.count #7599\n[
\n@florath
]- Moved error from truetype() to FreeTypeFont #7587\n[
\n@radarhere
]- Correct PDF palette size when saving #7555\n[
\n@radarhere
]- Fixed closing file pointer with olefile 0.47 #7594\n[
\n@radarhere
]- ruff: Minor optimizations of list comprehensions, x in set, etc. #7524\n[
\n@cclauss
]- Build Windows wheels using cibuildwheel #7580\n[
\n@nulano
]- Raise ValueError when TrueType font size is zero or less #7584\n[
\n@akx
]- Install cibuildwheel from requirements file #7581\n[
\n@hugovk
]
... (truncated)
\nSourced from pillow's\nchangelog.
\n\n\n10.2.0 (2024-01-02)
\n\n
\n\n- \n
\nAdd
\nkeep_rgb
option when saving JPEG to prevent\nconversion of RGB colorspace #7553\n[bgilbert, radarhere]- \n
\nTrim glyph size in ImageFont.getmask() #7669,\n#7672\n[radarhere, nulano]
\n- \n
\nDeprecate IptcImagePlugin helpers #7664\n[nulano, hugovk, radarhere]
\n- \n
\nAllow uncompressed TIFF images to be saved in chunks #7650\n[radarhere]
\n- \n
\nConcatenate multiple JPEG EXIF markers #7496\n[radarhere]
\n- \n
\nChanged IPTC tile tuple to match other plugins #7661\n[radarhere]
\n- \n
\nDo not assign new fp attribute when exiting context manager #7566\n[radarhere]
\n- \n
\nSupport arbitrary masks for uncompressed RGB DDS images #7589\n[radarhere, akx]
\n- \n
\nSupport setting ROWSPERSTRIP tag #7654\n[radarhere]
\n- \n
\nApply ImageFont.MAX_STRING_LENGTH to ImageFont.getmask() #7662\n[radarhere]
\n- \n
\nOptimise
\nImageColor
using\nfunctools.lru_cache
#7657\n[hugovk]- \n
\nRestricted environment keys for ImageMath.eval() #7655\n[wiredfool, radarhere]
\n- \n
\nOptimise
\nImageMode.getmode
using\nfunctools.lru_cache
#7641\n[hugovk, radarhere]- \n
\nFix incorrect color blending for overlapping glyphs #7497\n[ZachNagengast, nulano, radarhere]
\n- \n
\nAttempt memory mapping when tile args is a string #7565\n[radarhere]
\n- \n
\nFill identical pixels with transparency in subsequent frames when\nsaving GIF #7568\n[radarhere]
\n
... (truncated)
\n6956d0b
\n10.2.0 version bump31c8dac
\nMerge pull request #7675\nfrom python-pillow/pre-commit-ci-update-config40a3f91
\nMerge pull request #7674\nfrom nulano/url-examplecb41b0c
\n[pre-commit.ci] pre-commit autoupdatede62b25
\nfix image url in "Reading from URL" example7c526a6
\nUpdate CHANGES.rst [ci skip]d93a5ad
\nMerge pull request #7553\nfrom bgilbert/jpeg-rgbaed764f
\nUpdate CHANGES.rst [ci skip]f8df530
\nMerge pull request #7672\nfrom nulano/imagefont-negative-crop24e9485
\nMerge pull request #7671\nfrom radarhere/imagetransform