Pillow-simd

Latest version: v9.5.0.post2

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

Scan your dependencies

Page 21 of 23

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 down-
loading 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 quadri-
lateral. 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.

0.3b2

-----

The test suite includes 825 individual tests.

- An Image "getbands" method has been added. It returns a tuple
containing the individual band names for this image. To figure
out how many bands an image has, use "len(im.getbands())".

- An Image "putpixel" method has been added.

- The Image "point" method can now be used to convert "L" images
to any other format, via a lookup table. That table should
contain 256 values for each band in the output image.

- Some file drivers (including FLI/FLC, GIF, and IM) accidentally
overwrote the offset method with an internal attribute. All
drivers have been updated to use private attributes where
possible.

- The Image "histogram" method now works for "I" and "F" images.
For these modes, PIL divides the range between the min and
max values used in the image into 256 bins. You can also
pass in your own min and max values via the "extrema" option::

h = im.histogram(extrema=(0, 255))

- An Image "getextrema" method has been added. It returns the
min and max values used in the image. In this release, this
works for single band images only.

- Changed the PNG driver to load and save mode "I" images as
16-bit images. When saving, values outside the range 0..65535
are clipped.

- Fixed ImageFont.py to work with the new "pilfont" compiler.

- Added JPEG "save" and "draft" support for mode "YCbCr" images.
Note that if you save an "YCbCr" image as a JPEG file and read
it back, it is read as an RGB file. To get around this, you
can use the "draft" method::

im = Image.open("color.jpg")
im.draft("YCbCr", im.size)

- Read "RGBA" TGA images. Also fixed the orientation bug; all
images should now come out the right way.

- Changed mode name (and internal representation) from "YCrCb"
to "YCbCr" (!)
**WARNING: MAY BREAK EXISTING CODE**

0.3b1

-----

The test suite includes 750 individual tests.

- The "pilfont" package is now included in the standard PIL
distribution. The pilfont utility can be used to convert
X BDF and PCF raster font files to a format understood by
the ImageFont module.

- GIF files are now interlaced by default. To write a
non-interlaced file, pass interlace=0 to the "save"
method.

- The default string format has changed for the "fromstring"
and "tostring" methods.
**WARNING: MAY BREAK EXISTING CODE**

NOTE: If no extra arguments are given, the first line in
the string buffer is the top line of the image, instead of
the bottom line. For RGB images, the string now contains
3 bytes per pixel instead of 4. These changes were made
to make the methods compatible with the "fromstring"
factory function.

To get the old behaviour, use the following syntax::

data = im.tostring("raw", "RGBX", 0, -1)
im.fromstring(data, "raw", "RGBX", 0, -1)

- "new" no longer gives a MemoryError if the width or height
is zero (this only happened on platforms where malloc(0)
or calloc(0) returns NULL).

- "new" now adds a default palette object to "P" images.

- You can now convert directly between all modes supported by
PIL. When converting colour images to "P", PIL defaults to
a "web" palette and dithering. When converting greyscale
images to "1", PIL uses a thresholding and dithering.

- Added a "dither" option to "convert". By default, "convert"
uses floyd-steinberg error diffusion for "P" and "1" targets,
so this option is only used to *disable* dithering. Allowed
values are NONE (no dithering) or FLOYDSTEINBERG (default).
::

imOut = im.convert("P", dither=Image.NONE)

- Added a full set of "I" decoders. You can use "fromstring"
(and file decoders) to read any standard integer type as an
"I" image.

- Added some support for "YCbCr" images (creation, conversion
from/to "L" and "RGB", IM YCC load/save)

- "getpixel" now works properly with fractional coordinates.

- ImageDraw "setink" now works with "I", "F", "RGB", "RGBA",
"RGBX", "CMYK", and "YCbCr" images.

- ImImagePlugin no longer attaches palettes to "RGB" images.

- Various minor fixes.

Page 21 of 23

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.