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 22 of 23

0.3a4

-----

- Added experimental IPTC/NAA support.

- Eliminated AttributeError exceptions after "crop" (from
Skip Montanaro)

- Reads some uncompressed formats via memory mapping (this
is currently supported on Win32 only)

- Fixed some last minute glitches in the last alpha release
(Types instead of types in Image.py, version numbers, etc.)

- Eliminated some more bogus compiler warnings.

- Various fixes to make PIL compile and run smoother on Macs
(from Jack Jansen).

- Fixed "fromstring" and "tostring" for mode "I" images.

0.3a3

-----

The test suite includes 530 individual tests.

- Eliminated unexpected side-effect in "paste" with matte. "paste"
now works properly also if compiled with "gcc".

- Adapted to Python 1.5 (build issues only)

- Fixed the ImageDraw "point" method to draw also the last
point (!).

- Added "I" and "RGBX" support to Image.new.

- The plugin path is now properly prepended to the module search
path when a plugin module is imported.

- Added "draw" method to the ImageWin.Dib class. This is used by
Topaz to print images on Windows printers.

- "convert" now supports conversions from "P" to "1" and "F".

- "paste" can now take a colour instead of an image as the first argument.
The colour must match the colour argument given to the new function, and
match the mode of the target image.

- Fixed "paste" to allow a mask also for mode "F" images.

- The BMP driver now saves mode "1" images. When loading images, the mode
is set to "L" for 8-bit files with greyscale palettes, and to "P" for
other 8-bit files.

- The IM driver now reads and saves "1" images (file modes "0 1" or "L 1").

- The JPEG and GIF drivers now saves "1" images. For JPEG, the image
is saved as 8-bit greyscale (it will load as mode "L"). For GIF, the
image will be loaded as a "P" image.

- Fixed a potential buffer overrun in the GIF encoder.

0.3a2

-----

The test suite includes 400 individual tests.

- Improvements to the test suite revealed a number of minor bugs, which
are all fixed. Note that crop/paste, 32-bit ImageDraw, and ImageFont
are still weak spots in this release.

- Added "putpalette" method to the Image class. You can use this
to add or modify the palette for "P" and "L" images. If a palette
is added to an "L" image, it is automatically converted to a "P"
image.

- Fixed ImageDraw to properly handle 32-bit image memories
("RGB", "RGBA", "CMYK", "F")

- Fixed "fromstring" and "tostring" not to mess up the mode attribute
in default mode.

- Changed ImPlatform.h to work on CRAY's (don't have one at home, so I
haven't tried it). The previous version assumed that either "short"
or "int" were 16-bit wide. PIL still won't compile on platforms where
neither "short", "int" nor "long" are 32-bit wide.

- Added file= and data= keyword arguments to PhotoImage and BitmapImage.
This allows you to use them as drop-in replacements for the corre-
sponding Tkinter classes.

- Removed bogus references to the crack coder (ImagingCrack).

0.3a1

-----

- Make sure image is loaded in "tostring".

- Added floating point packer (native 32-bit floats only).

0.2b5

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

- Fixed the tobitmap() method to work properly for small bitmaps.

- Added RMS and standard deviation to the ImageStat.Stat class. Also
modified the constructor to take an optional feature mask, and also
to accept either an image or a list containing the histogram data.

- The BitmapImage code in ImageTk can now use a special bitmap
decoder, which has to be patched into Tk. See the "Tk/pilbitmap.txt"
file for details. If not installed, bitmaps are transferred to Tk as
XBM strings.

- The PhotoImage code in ImageTk now uses a Tcl command ("PyImagingPaste")
instead of a special image type. This gives somewhat better performance,
and also allows PIL to support transparency.
**WARNING: TKAPPINIT MUST BE MODIFIED**

- ImageTk now honours the alpha layer in RGBA images. Only fully
transparent pixels are made transparent (that is, the alpha layer
is treated as a mask). To treat the alpha laters as a matte, you
must paste the image on the background before handing it over to
ImageTk.

- Added McIdas reader (supports 8-bit images only).

- PIL now preloads drivers for BMP, GIF, JPEG, PPM, and TIFF. As
long as you only load and save these formats, you don't have to
wait for a full scan for drivers. To force scanning, call the
Image.init() function.

- The "seek" and "tell" methods are now always available, also for
single-frame images.

- Added optional mask argument to histogram method. The mask may
be an "1" or "L" image with the same size as the original image.
Only pixels where the mask is non-zero are included in the
histogram.

- The "paste" method now allows you to specify only the lower left
corner (a 2-tuple), instead of the full region (a 4-tuple).

- Reverted to old plugin scanning model; now scans all directory
names in the path when looking for plugins.

- Added PIXAR raster support. Only uncompressed ("dumped") RGB
images can currently be read (based on information provided
by Greg Coats).

- Added FlashPix (FPX) read support. Reads all pixel formats, but
only the highest resolution is read, and the viewing transform is
currently ignored.

- Made PNG encoding somewhat more efficient in "optimize" mode; a
bug in 0.2b4 didn't enable all predictor filters when optimized
storage were requested.

- Added Microsoft Image Composer (MIC) read support. When opened,
the first sprite in the file is loaded. You can use the seek method
to load additional sprites from the file.

- Properly reads "P" and "CMYK" PSD images.

- "pilconvert" no longer optimizes by default; use the -o option to
make the file as small as possible (at the expense of speed); use
the -q option to set the quality when compressing to JPEG.

- Fixed "crop" not to drop the palette for "P" images.

- Added and verified FLC support.

- Paste with "L" or "RGBA" alpha is now several times faster on most
platforms.

- Changed Image.new() to initialize the image to black, as described
in the handbook. To get an uninitialized image, use None as the
colour.

- Fixed the PDF encoder to produce a valid header; Acrobat no longer
complains when you load PDF images created by PIL.

- PIL only scans fully-qualified directory names in the path when
looking for plugins.
**WARNING: MAY BREAK EXISTING CODE**

- Faster implementation of "save" used when filename is given,
or when file object has "fileno" and "flush" methods.

- Don't crash in "crop" if region extends outside the source image.

- Eliminated a massive memory leak in the "save" function.

- The GIF decoder doesn't crash if the code size is set to an illegal
value. This could happen since another bug didn't handle local
palettes properly if they didn't have the same size as the
global palette (not very common).

- Added predictor support (TIFF 6.0 section 14) to the TIFF decoder.

- Fixed palette and padding problems in BMP driver. Now properly
writes "1", "L", "P" and "RGB" images.

- Fixed getpixel()/getdata() to return correct pixel values.

- Added PSD (PhotoShop) read support. Reads both uncompressed
and compressed images of most types.

- Added GIF write support (writes "uncompressed" GIF files only,
due to unresolvable licensing issues). The "gifmaker.py" script
can be used to create GIF animations.

- Reads 8-bit "L" and "P" TGA images. Also reads 16-bit "RGB"
images.

- Added FLI read support. This driver has only been tested
on a few FLI samples.

- Reads 2-bit and 4-bit PCX images.

- Added MSP read and write support. Both version 1 and 2 can be
read, but only version 1 (uncompressed) files are written.

- Fixed a bug in the FLI/FLC identification code that caused the
driver to raise an exception when parsing valid FLI/FLC files.

- Improved performance when loading file format plugins, and when
opening files.

- Added GIF animation support, via the "seek" and "tell" methods.
You can use "player.py" to play an animated GIF file.

- Removed MNG support, since the spec is changing faster than I
can change the code. I've added support for the experimental
ARG format instead. Contact me for more information on this
format.

- Added keyword options to the "save" method. The following options
are currently supported:

.. list-table::
:widths: 25 25 50
:header-rows: 1

* - Format
- Option
- Description
* - JPEG
- optimize
- Minimize output file at the expense of compression speed.
* - JPEG
- progressive
- Enable progressive output. The option value is ignored.
* - JPEG
- quality
- Set compression quality (1-100). The default value is 75.
* - JPEG
- smooth
- Smooth dithered images. Value is strength (1-100). Default is off (0).
* - PNG
- optimize
- Minimize output file at the expense of compression speed.

Expect more options in future releases. Also note that
file writers silently ignore unknown options.

- Plugged memory leaks in the PNG and TIFF decoders.

- Added PNG write support.

- (internal) RGB unpackers and converters now set the pad byte
to 255 (full opacity).

- Properly handles the "transparency" property for GIF, PNG
and XPM files.

- Added a "putalpha" method, allowing you to attach a "1" or "L"
image as the alpha layer to an "RGBA" image.

- Various improvements to the sample scripts:

.. list-table::
:widths: 25 75

* - pilconvert
- Carries out some extra tricks in order to make
the resulting file as small as possible.
* - explode
- (NEW) Split an image sequence into individual frames.
* - gifmaker
- (NEW) Convert a sequence file into a GIF animation.
Note that the GIF encoder create "uncompressed" GIF
files, so animations created by this script are
rather large (typically 2-5 times the compressed
sizes).
* - image2py
- (NEW) Convert a single image to a python module. See
comments in this script for details.
* - player
- If multiple images are given on the command line,
they are interpreted as frames in a sequence. The
script assumes that they all have the same size.
Also note that this script now can play FLI/FLC
and GIF animations.

This player can also execute embedded Python
animation applets (ARG format only).
* - viewer
- Transparent images ("P" with transparency property,
and "RGBA") are superimposed on the standard Tk background.

- Fixed colour argument to "new". For multilayer images, pass a
tuple: (Red, Green, Blue), (Red, Green, Blue, Alpha), or (Cyan,
Magenta, Yellow, Black).

- Added XPM (X pixmap) read support.

0.2b3

-----

- Added MNG (multi-image network graphics) read support. "Ming"
is a proposed animation standard, based on the PNG file format.

You can use the "player" sample script to display some flavours
of this format. The MNG standard is still under development,
as is this driver. More information, including sample files,
can be found at <ftp://swrinde.nde.swri.edu/pub/mng>

- Added a "verify" method to images loaded from file. This method
scans the file for errors, without actually decoding the image
data, and raises a suitable exception if it finds any problems.
Currently implemented for PNG and MNG files only.

- Added support for interlaced GIF images.

- Added PNG read support -- if linked with the ZLIB compression library,
PIL reads all kinds of PNG images, except interlaced files.

- Improved PNG identification support -- doesn't mess up on unknown
chunks, identifies all possible PNG modes, and verifies checksum
on PNG header chunks.

- Added an experimental reader for placable Windows Meta Files (WMF).
This reader is still very incomplete, but it illustrates how PIL's
drawing capabilities can be used to render vector and metafile
formats.

- Added restricted drivers for images from Image Tools (greyscale
only) and LabEye/IFUNC (common interchange modes only).

- Some minor improvements to the sample scripts provided in the
"Scripts" directory.

- The test images have been moved to the "Images" directory.

Page 22 of 23

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.