Pillow

Latest version: v11.1.0

Safety actively analyzes 721825 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 22 of 24

1.1

Not secure
----------------

- Removed setuptools_hg requirement
[aclark4life]

- Doc fixes
[aclark4life]

1.0

Not secure
----------

- Adapted to Python 1.6 ("append" and other method changes)

- Fixed Image.paste when pasting with solid colour and matte
layers ("L" or "RGBA" masks) (bug reported by Robert Kern)

- To make it easier to distribute prebuilt versions of PIL,
the tkinit binding stuff has been moved to a separate
extension module, named "_imagingtk".

1.0c2

-----

- If PIL is built with the WITH_TKINTER flag, ImageTk can
automatically hook into a standard Tkinter build. You
no longer need to build your own Tkinter to use the
ImageTk module.

The old way still works, though. For more information,
see Tk/install.txt.

- Some tweaks to ImageTk to support multiple Tk interpreters
(from Greg Couch).

- ImageFont "load_path" now scans directory mentioned in .pth
files (from Richard Jones).

1.0c1

-----

- The TIFF plugin has been rewritten. The new plugin fully
supports all major PIL image modes (including F and I).

- The ImageFile module now includes a Parser class, which can
be used to incrementally decode an image file (while downloading
it from the net, for example). See the handbook for
details.

- "show" now converts non-standard modes to "L" or "RGB" (as
appropriate), rather than writing weird things to disk for
"xv" to choke upon. (bug reported by Les Schaffer).

1.0b2

-----

- Major speedups for rotate, transform(EXTENT), and transform(AFFINE)
when using nearest neighbour resampling.

- Modified ImageDraw to be compatible with the Arrow graphics
interface. See the handbook for details.

- PIL now automatically loads file codecs when used as a package
(from The Dragon De Monsyne). Also included an __init__.py file
in the standard distribution.

- The GIF encoder has been modified to produce much smaller files.

PIL now uses a run-length encoding method to encode GIF files.
On a random selection of GIF images grabbed from the web, this
version makes the images about twice as large as the original
LZW files, where the earlier version made them over 5 times
larger. YMMV, of course.

- Added PCX write support (works with "1", "P", "L", and "RGB")

- Added "bitmap" and "textsize" methods to ImageDraw.

- Improved font rendering code. Fixed a bug or two, and moved
most of the time critical stuff to C.

- Removed "bdf2pil.py". Use "pilfont.py" instead!

- Improved 16-bit support (still experimental, though).

The following methods now support "I;16" and "I;16B" images:
"getpixel", "copy", "convert" (to and from mode "I"), "resize",
"rotate", and "transform" with nearest neighbour filters, and
"save" using the IM format. The "new" and "open" functions
also work as expected. On Windows, 16-bit files are memory
mapped.

NOTE: ALL other operations are still UNDEFINED on 16-bit images.

- The "paste" method now supports constant sources.

Just pass a colour value (a number or a tuple, depending on
the target image mode) instead of the source image.

This was in fact implemented in an inefficient way in
earlier versions (the "paste" method generated a temporary
source image if you passed it a colour instead of an image).
In this version, this is handled on the C level instead.

- Added experimental "RGBa" mode support.

An "RGBa" image is an RGBA image where the colour components
have have been premultiplied with the alpha value. PIL allows
you to convert an RGBA image to an RGBa image, and to paste
RGBa images on top of RGB images. Since this saves a bunch
of multiplications and shifts, it is typically about twice
as fast an ordinary RGBA paste.

- Eliminated extra conversion step when pasting "RGBA" or "RGBa"
images on top of "RGB" images.

- Fixed Image.BICUBIC resampling for "RGB" images.

- Fixed PCX image file handler to properly read 8-bit PCX
files (bug introduced in 1.0b1, reported by Bernhard
Herzog)

- Fixed PSDraw "image" method to restore the coordinate
system.

- Fixed "blend" problem when applied to images that was
not already loaded (reported by Edward C. Jones)

- Fixed -f option to "pilconvert.py" (from Anthony Baxter)

1.0b1

-----

- Added Toby J. Sargeant's quantization package. To enable
quantization, use the "palette" option to "convert"::

imOut = im.convert("P", palette=Image.ADAPTIVE)

This can be used with "L", "P", and "RGB" images. In this
version, dithering cannot be used with adaptive palettes.

Note: ADAPTIVE currently maps to median cut quantization
with 256 colours. The quantization package also contains
a maximum coverage quantizer, which will be supported by
future versions of PIL.

- Added Eric S. Raymond's "pildriver" image calculator to the
distribution. See the docstring for more information.

- The "offset" method no longer dumps core if given positive
offsets (from Charles Waldman).

- Fixed a resource leak that could cause ImageWin to run out of
GDI resources (from Roger Burnham).

- Added "arc", "chord", and "pieslice" methods to ImageDraw (inspired
by code contributed by Richard Jones).

- Added experimental 16-bit support, via modes "I;16" (little endian
data) and "I;16B" (big endian). Only a few methods properly support
such images (see above).

- Added XV thumbnail file handler (from Gene Cash).

- Fixed BMP image file handler to handle palette images with small
palettes (from Rob Hooft).

- Fixed Sun raster file handler for palette images (from Charles
Waldman).

- Improved various internal error messages.

- Fixed Path constructor to handle arbitrary sequence objects. This
also affects the ImageDraw class (from Richard Jones).

- Fixed a bug in JpegDecode that caused PIL to report "decoder error
-2" for some progressive JPEG files (reported by Magnus Källström,
who also provided samples).

- Fixed a bug in JpegImagePlugin that caused PIL to hang when loading
JPEG files using 16-bit quantization tables.

- The Image "transform" method now supports Image.QUAD transforms.
The data argument is an 8-tuple giving the upper left, lower
left, lower right, and upper right corner of the source quadrilateral.
Also added Image.MESH transform which takes a list
of quadrilaterals.

- The Image "resize", "rotate", and "transform" methods now support
Image.BILINEAR (2x2) and Image.BICUBIC (4x4) resampling filters.
Filters can be used with all transform methods.

- The ImageDraw "rectangle" method now includes both the right
and the bottom edges when drawing filled rectangles.

- The TGA decoder now works properly for runlength encoded images
which have more than one byte per pixel.

- "getbands" on an YCbCr image now returns ("Y", "Cb", "Cr")

- Some file drivers didn't handle the optional "modify" argument
to the load method. This resulted in exceptions when you used
"paste" (and other methods that modify an image in place) on a
newly opened file.

Page 22 of 24

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.