Pillow

Latest version: v11.1.0

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

Scan your dependencies

Page 21 of 24

1.1.4a1

-------

- Improved support for drawing RGB data in palette images. You can
now use RGB tuples or colour names (see below) when drawing in a
mode "P" image. The drawing layer automatically assigns color
indexes, as long as you don't use more than 256 unique colours.

- Moved self test from MiniTest/test.py to ./selftest.py.

- Added support for CSS3-style color strings to most places that
accept colour codes/tuples. This includes the "ImageDraw" module,
the Image "new" function, and the Image "paste" method.

Colour strings can use one of the following formats: "f00",
"ff0000", "rgb(255,0,0)", "rgb(100%,0%,0%)", "hsl(0, 100%, 50%)",
or "red" (most X11-style colour names are supported). See the
documentation for the "ImageColor" module for more information.

- Fixed DCX decoder (based on input from Larry Bates)

- Added "IptcImagePlugin.getiptcinfo" helper to extract IPTC/NAA
newsphoto properties from JPEG, TIFF, or IPTC files.

- Support for TrueType/OpenType fonts has been added to
the standard distribution. You need the freetype 2.0
library.

- Made the PCX reader a bit more robust when reading 2-bit
and 4-bit PCX images with odd image sizes.

- Added "Kernel" class to the ImageFilter module. This class
allows you to filter images with user-defined 3x3 and 5x5
convolution kernels.

- Added "putdata" support for mode "I", "F" and "RGB".

- The GIF writer now supports the transparency option (from
Denis Benoit).

- A HTML version of the module documentation is now shipped
with the source code distribution. You'll find the files in
the Doc subdirectory.

- Added support for Palm pixmaps (from Bill Janssen). This
change was listed for 1.1.3, but the "PalmImagePlugin" driver
didn't make it into the distribution.

- Improved decoder error messages.

1.1.3

-----------

- Made setup.py look for old versions of zlib. For some background,
see: https://zlib.net/advisory-2002-03-11.txt

1.1.3c2

-------

- Added setup.py file (tested on Unix and Windows). You still
need to build libImaging/imaging.lib in the traditional way,
but the setup.py script takes care of the rest.

The old Setup.in/Makefile.pre.in build method is still
supported.

- Fixed segmentation violation in ANTIALIAS filter (an internal
buffer wasn't properly allocated).

1.1.3c1

-------

- Added ANTIALIAS downsampling filter for high-quality "resize"
and "thumbnail" operations. Also added filter option to the
"thumbnail" operation; the default value is NEAREST, but this
will most likely change in future versions.

- Fixed plugin loader to be more robust if the __file__
variable isn't set.

- Added seek/tell support (for layers) to the PhotoShop
loader. Layer 0 is the main image.

- Added new (but experimental) "ImageOps" module, which provides
shortcuts for commonly used operations on entire images.

- Don't mess up when loading PNG images if the decoder leaves
data in the output buffer. This could cause internal errors
on some PNG images, with some versions of ZLIB. (Bug report
and patch provided by Bernhard Herzog.)

- Don't mess up on Unicode filenames.

- Don't mess up when drawing on big endian platforms.

- Made the TIFF loader a bit more robust; it can now read some
more slightly broken TIFF files (based on input from Ted Wright,
Bob Klimek, and D. Alan Stewart)

- Added OS/2 EMX build files (from Andrew MacIntyre)

- Change "ImageFont" to reject image files if they don't have the
right mode. Older versions could leak memory for "P" images.
(Bug reported by Markus Gritsch).

- Renamed some internal functions to avoid potential build
problem on Mac OS X.

- Added DL_EXPORT where relevant (for Cygwin, based on input
from Robert Yodlowski)

- (re)moved bogus __init__ call in BdfFontFile (bug spotted
by Fred Clare)

- Added "ImageGrab" support (Windows only)

- Added support for XBM hotspots (based on code contributed by
Bernhard Herzog).

- Added write support for more TIFF tags, namely the Artist,
Copyright, DateTime, ResolutionUnit, Software, XResolution and
YResolution tags (from Greg Couch)

- Added TransposedFont wrapper to ImageFont module

- Added "optimize" flag to GIF encoder. If optimize is present
and non-zero, PIL will work harder to create a small file.

- Raise "EOFError" (not IndexError) when reading beyond the
end of a TIFF sequence.

- Support rewind ("seek(0)") for GIF and TIFF sequences.

- Load grayscale GIF images as mode "L"

- Added DPI read/write support to the JPEG codec. The decoder
sets the info["dpi"] attribute for JPEG files with JFIF dpi
settings. The encoder uses the "dpi" option::

im = Image.open("file.jpg")
dpi = im.info["dpi"] raises KeyError if DPI not known
im.save("out.jpg", dpi=dpi)

Note that PIL doesn't always preserve the "info" attribute
for normal image operations.

1.1.2c1

-----------------------

- Adapted to Python 2.1. Among other things, all uses of the
"regex" module have been replaced with "re".

- Fixed attribute error when reading large PNG files (this bug
was introduced in maintenance code released after the 1.1.1
release)

- Ignore non-string objects in sys.path

- Fixed Image.transform(EXTENT) for negative xoffsets

- Fixed loading of image plugins if PIL is installed as a package.
(The plugin loader now always looks in the directory where the
Image.py module itself is found, even if that directory isn't on
the standard search path)

- The Png plugin has been added to the list of preloaded standard
formats

- Fixed bitmap/text drawing in fill mode.

- Fixed "getextrema" to work also for multiband images.

- Added transparency support for L and P images to the PNG codec.

- Improved support for read-only images. The "load" method now
sets the "readonly" attribute for memory-mapped images. Operations
that modifies an image in place (such as "paste" and drawing operations)
creates an in-memory copy of the image, if necessary. (before this
change, any attempt to modify a memory-mapped image resulted in a
core dump...)

- Added special cases for lists everywhere PIL expects a sequence.
This should speed up things like "putdata" and drawing operations.

- The Image.offset method is deprecated. Use the ImageChops.offset
function instead.

- Changed ImageChops operators to copy palette and info dictionary
from the first image argument.

1.1.1

-----

- Additional fixes for Python 1.6/2.0, including TIFF "save" bug.

- Changed "init" to properly load plugins when PIL is used as a
package.

- Fixed broken "show" method (on Unix)

Page 21 of 24

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.