10.3.0 (2024-04-01)¶
Security¶
ImageMath eval()¶
Danger
ImageMath.eval()
uses Python’s eval()
function to process the expression
string, and carries the security risks of doing so. A direct replacement for this is
the new unsafe_eval()
, but that carries the same risks. It is
not recommended to process expressions without considering this.
lambda_eval()
is a more secure alternative.
CVE 2024-28219: Fix buffer overflow in _imagingcms.c
¶
In _imagingcms.c
, two strcpy
calls were able to copy too much data into fixed
length strings. This has been fixed by using strncpy
instead.
Deprecations¶
ImageCms constants and versions() function¶
A number of constants and a function in ImageCms
have been deprecated.
This includes a table of flags based on LittleCMS version 1 which has been replaced
with a new class ImageCms.Flags
based on LittleCMS 2 flags.
Deprecated |
Use instead |
---|---|
|
No replacement |
|
|
|
|
|
|
|
No replacement |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ImageMath.eval()¶
ImageMath.eval()
has been deprecated. Use lambda_eval()
or
unsafe_eval()
instead. See earlier security notes for more
information.
API Changes¶
Added alpha_quality argument when saving WebP images¶
When saving WebP images, an alpha_quality
argument can be passed to the encoder. It
is an integer value between 0 to 100, where values other than 100 will provide lossy
compression.
Negative kmeans error¶
When calling quantize()
, a negative kmeans
will now
raise a ValueError
, unless a palette is supplied to make the value redundant.
Negative P1-P3 PPM value error¶
If a P1-P3 PPM image contains a negative value, a ValueError
will now be
raised.
API Additions¶
Added PerspectiveTransform¶
PerspectiveTransform
has been added, meaning
that all of the Transform
values now have a corresponding
subclass of Transform
.
Other Changes¶
Portable FloatMap (PFM) images¶
Support has been added for reading and writing grayscale (Pf format)
Portable FloatMap (PFM) files containing F
data.
Release GIL when fetching WebP frames¶
Python’s Global Interpreter Lock is now released when fetching WebP frames from the libwebp decoder.
Type hints¶
Pillow now has type hints for a large part of its modules, and the package
includes a py.typed
file and the Typing :: Typed
Trove classifier.