-------------------------------
- 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.