From 9a640e3157150e35f17354517e8c6304fc428060 Mon Sep 17 00:00:00 2001
From: Alex Clark
Date: Fri, 30 Jul 2010 22:52:47 -0400
Subject: [PATCH] Forking PIL
---
BUILDME | 11 +
CHANGES | 1767 ++++++++++
CONTENTS | 299 ++
Docs/effbot.css | 118 +
Docs/index.html | 103 +
Docs/pythondoc-PIL.ArgImagePlugin.html | 23 +
Docs/pythondoc-PIL.BdfFontFile.html | 23 +
Docs/pythondoc-PIL.BmpImagePlugin.html | 23 +
Docs/pythondoc-PIL.BufrStubImagePlugin.html | 20 +
Docs/pythondoc-PIL.ContainerIO.html | 87 +
Docs/pythondoc-PIL.CurImagePlugin.html | 23 +
Docs/pythondoc-PIL.DcxImagePlugin.html | 23 +
Docs/pythondoc-PIL.EpsImagePlugin.html | 23 +
Docs/pythondoc-PIL.ExifTags.html | 19 +
Docs/pythondoc-PIL.FitsStubImagePlugin.html | 20 +
Docs/pythondoc-PIL.FliImagePlugin.html | 25 +
Docs/pythondoc-PIL.FontFile.html | 23 +
Docs/pythondoc-PIL.FpxImagePlugin.html | 23 +
Docs/pythondoc-PIL.GbrImagePlugin.html | 23 +
Docs/pythondoc-PIL.GdImageFile.html | 43 +
Docs/pythondoc-PIL.GifImagePlugin.html | 23 +
Docs/pythondoc-PIL.GimpGradientFile.html | 23 +
Docs/pythondoc-PIL.GimpPaletteFile.html | 23 +
Docs/pythondoc-PIL.GribStubImagePlugin.html | 20 +
Docs/pythondoc-PIL.Hdf5StubImagePlugin.html | 20 +
Docs/pythondoc-PIL.IcnsImagePlugin.html | 23 +
Docs/pythondoc-PIL.IcoImagePlugin.html | 23 +
Docs/pythondoc-PIL.ImImagePlugin.html | 23 +
Docs/pythondoc-PIL.Image.html | 931 ++++++
Docs/pythondoc-PIL.ImageChops.html | 282 ++
Docs/pythondoc-PIL.ImageColor.html | 25 +
Docs/pythondoc-PIL.ImageDraw.html | 111 +
Docs/pythondoc-PIL.ImageEnhance.html | 77 +
Docs/pythondoc-PIL.ImageFile.html | 117 +
Docs/pythondoc-PIL.ImageFileIO.html | 43 +
Docs/pythondoc-PIL.ImageFilter.html | 257 ++
Docs/pythondoc-PIL.ImageFont.html | 141 +
Docs/pythondoc-PIL.ImageGL.html | 24 +
Docs/pythondoc-PIL.ImageGrab.html | 37 +
Docs/pythondoc-PIL.ImageOps.html | 221 ++
Docs/pythondoc-PIL.ImagePalette.html | 23 +
Docs/pythondoc-PIL.ImagePath.html | 54 +
Docs/pythondoc-PIL.ImageSequence.html | 32 +
Docs/pythondoc-PIL.ImageStat.html | 37 +
Docs/pythondoc-PIL.ImageTk.html | 141 +
Docs/pythondoc-PIL.ImageTransform.html | 140 +
Docs/pythondoc-PIL.ImageWin.html | 141 +
Docs/pythondoc-PIL.ImtImagePlugin.html | 23 +
Docs/pythondoc-PIL.IptcImagePlugin.html | 36 +
Docs/pythondoc-PIL.JpegImagePlugin.html | 23 +
Docs/pythondoc-PIL.McIdasImagePlugin.html | 23 +
Docs/pythondoc-PIL.MicImagePlugin.html | 23 +
Docs/pythondoc-PIL.MpegImagePlugin.html | 23 +
Docs/pythondoc-PIL.MspImagePlugin.html | 23 +
Docs/pythondoc-PIL.OleFileIO.html | 39 +
Docs/pythondoc-PIL.PSDraw.html | 23 +
Docs/pythondoc-PIL.PaletteFile.html | 23 +
Docs/pythondoc-PIL.PalmImagePlugin.html | 16 +
Docs/pythondoc-PIL.PcdImagePlugin.html | 23 +
Docs/pythondoc-PIL.PcfFontFile.html | 23 +
Docs/pythondoc-PIL.PcxImagePlugin.html | 23 +
Docs/pythondoc-PIL.PdfImagePlugin.html | 16 +
Docs/pythondoc-PIL.PixarImagePlugin.html | 23 +
Docs/pythondoc-PIL.PngImagePlugin.html | 23 +
Docs/pythondoc-PIL.PpmImagePlugin.html | 23 +
Docs/pythondoc-PIL.PsdImagePlugin.html | 23 +
Docs/pythondoc-PIL.SgiImagePlugin.html | 23 +
Docs/pythondoc-PIL.SpiderImagePlugin.html | 28 +
Docs/pythondoc-PIL.SunImagePlugin.html | 23 +
Docs/pythondoc-PIL.TarIO.html | 35 +
Docs/pythondoc-PIL.TgaImagePlugin.html | 23 +
Docs/pythondoc-PIL.TiffImagePlugin.html | 34 +
Docs/pythondoc-PIL.TiffTags.html | 19 +
Docs/pythondoc-PIL.WalImageFile.html | 28 +
Docs/pythondoc-PIL.WmfImagePlugin.html | 31 +
Docs/pythondoc-PIL.XVThumbImagePlugin.html | 23 +
Docs/pythondoc-PIL.XbmImagePlugin.html | 23 +
Docs/pythondoc-PIL.XpmImagePlugin.html | 23 +
Images/courB08.bdf | 2676 +++++++++++++++
Images/courB08.pbm | Bin 0 -> 1273 bytes
Images/courB08.pil | Bin 0 -> 5143 bytes
Images/lena.gif | Bin 0 -> 16336 bytes
Images/lena.jpg | Bin 0 -> 4788 bytes
Images/lena.png | Bin 0 -> 37723 bytes
Images/lena.ppm | Bin 0 -> 49167 bytes
MANIFEST.in | 7 +
PIL.egg-info/PKG-INFO | 18 +
PIL.egg-info/SOURCES.txt | 283 ++
PIL.egg-info/dependency_links.txt | 1 +
PIL.egg-info/top_level.txt | 2 +
PIL.pth | 1 +
PIL/ArgImagePlugin.py | 504 +++
PIL/BdfFontFile.py | 133 +
PIL/BmpImagePlugin.py | 251 ++
PIL/BufrStubImagePlugin.py | 68 +
PIL/ContainerIO.py | 116 +
PIL/CurImagePlugin.py | 88 +
PIL/DcxImagePlugin.py | 78 +
PIL/EpsImagePlugin.py | 349 ++
PIL/ExifTags.py | 157 +
PIL/FitsStubImagePlugin.py | 73 +
PIL/FliImagePlugin.py | 142 +
PIL/FontFile.py | 146 +
PIL/FpxImagePlugin.py | 224 ++
PIL/GbrImagePlugin.py | 70 +
PIL/GdImageFile.py | 85 +
PIL/GifImagePlugin.py | 407 +++
PIL/GimpGradientFile.py | 124 +
PIL/GimpPaletteFile.py | 61 +
PIL/GribStubImagePlugin.py | 68 +
PIL/Hdf5StubImagePlugin.py | 70 +
PIL/IcnsImagePlugin.py | 211 ++
PIL/IcoImagePlugin.py | 86 +
PIL/ImImagePlugin.py | 336 ++
PIL/Image.py | 2127 ++++++++++++
PIL/ImageChops.py | 302 ++
PIL/ImageCms.py | 786 +++++
PIL/ImageColor.py | 263 ++
PIL/ImageDraw.py | 378 +++
PIL/ImageDraw2.py | 105 +
PIL/ImageEnhance.py | 90 +
PIL/ImageFile.py | 528 +++
PIL/ImageFileIO.py | 39 +
PIL/ImageFilter.py | 289 ++
PIL/ImageFont.py | 390 +++
PIL/ImageGL.py | 28 +
PIL/ImageGrab.py | 71 +
PIL/ImageMath.py | 207 ++
PIL/ImageMode.py | 50 +
PIL/ImageOps.py | 439 +++
PIL/ImagePalette.py | 184 ++
PIL/ImagePath.py | 71 +
PIL/ImageQt.py | 84 +
PIL/ImageSequence.py | 38 +
PIL/ImageShow.py | 163 +
PIL/ImageStat.py | 164 +
PIL/ImageTk.py | 296 ++
PIL/ImageTransform.py | 95 +
PIL/ImageWin.py | 215 ++
PIL/ImtImagePlugin.py | 93 +
PIL/IptcImagePlugin.py | 288 ++
PIL/JpegImagePlugin.py | 492 +++
PIL/McIdasImagePlugin.py | 70 +
PIL/MicImagePlugin.py | 95 +
PIL/MpegImagePlugin.py | 82 +
PIL/MspImagePlugin.py | 103 +
PIL/OleFileIO.py | 528 +++
PIL/PSDraw.py | 199 ++
PIL/PaletteFile.py | 55 +
PIL/PalmImagePlugin.py | 225 ++
PIL/PcdImagePlugin.py | 76 +
PIL/PcfFontFile.py | 256 ++
PIL/PcxImagePlugin.py | 167 +
PIL/PdfImagePlugin.py | 211 ++
PIL/PixarImagePlugin.py | 71 +
PIL/PngImagePlugin.py | 620 ++++
PIL/PpmImagePlugin.py | 131 +
PIL/PsdImagePlugin.py | 291 ++
PIL/SgiImagePlugin.py | 92 +
PIL/SpiderImagePlugin.py | 294 ++
PIL/SunImagePlugin.py | 86 +
PIL/TarIO.py | 57 +
PIL/TgaImagePlugin.py | 201 ++
PIL/TiffImagePlugin.py | 860 +++++
PIL/TiffTags.py | 209 ++
PIL/WalImageFile.py | 126 +
PIL/WmfImagePlugin.py | 167 +
PIL/XVThumbImagePlugin.py | 73 +
PIL/XbmImagePlugin.py | 94 +
PIL/XpmImagePlugin.py | 129 +
PIL/__init__.py | 12 +
PKG-INFO | 18 +
README | 300 ++
README.txt | 4 +
Sane/CHANGES | 34 +
Sane/README | 22 +
Sane/_sane.c | 1325 ++++++++
Sane/demo_numarray.py | 39 +
Sane/demo_pil.py | 33 +
Sane/sane.py | 289 ++
Sane/sanedoc.txt | 294 ++
Sane/setup.py | 24 +
Scripts/README | 83 +
Scripts/enhancer.py | 53 +
Scripts/explode.py | 107 +
Scripts/gifmaker.py | 135 +
Scripts/painter.py | 72 +
Scripts/pilconvert.py | 96 +
Scripts/pildriver.py | 524 +++
Scripts/pilfile.py | 94 +
Scripts/pilfont.py | 54 +
Scripts/pilprint.py | 93 +
Scripts/player.py | 121 +
Scripts/thresholder.py | 68 +
Scripts/viewer.py | 46 +
Tk/booster.txt | 108 +
Tk/install.txt | 41 +
Tk/pilbitmap.txt | 149 +
Tk/tkImaging.c | 265 ++
_imaging.c | 3281 +++++++++++++++++++
_imagingcms.c | 608 ++++
_imagingft.c | 502 +++
_imagingmath.c | 284 ++
_imagingtk.c | 70 +
decode.c | 689 ++++
display.c | 836 +++++
doctest.py | 1111 +++++++
encode.c | 540 +++
libImaging/Access.c | 255 ++
libImaging/Antialias.c | 307 ++
libImaging/Bands.c | 129 +
libImaging/Bit.h | 30 +
libImaging/BitDecode.c | 138 +
libImaging/Blend.c | 79 +
libImaging/Chops.c | 148 +
libImaging/Convert.c | 1132 +++++++
libImaging/ConvertYCbCr.c | 387 +++
libImaging/Copy.c | 58 +
libImaging/Crc32.c | 87 +
libImaging/Crop.c | 61 +
libImaging/Dib.c | 311 ++
libImaging/Draw.c | 1167 +++++++
libImaging/Effects.c | 373 +++
libImaging/EpsEncode.c | 80 +
libImaging/Except.c | 83 +
libImaging/File.c | 193 ++
libImaging/Fill.c | 101 +
libImaging/Filter.c | 179 +
libImaging/FliDecode.c | 205 ++
libImaging/Geometry.c | 959 ++++++
libImaging/GetBBox.c | 316 ++
libImaging/Gif.h | 109 +
libImaging/GifDecode.c | 297 ++
libImaging/GifEncode.c | 319 ++
libImaging/HexDecode.c | 67 +
libImaging/Histo.c | 169 +
libImaging/ImDib.h | 64 +
libImaging/ImPlatform.h | 72 +
libImaging/Imaging.h | 497 +++
libImaging/Jpeg.h | 104 +
libImaging/JpegDecode.c | 267 ++
libImaging/JpegEncode.c | 284 ++
libImaging/Lzw.h | 52 +
libImaging/LzwDecode.c | 230 ++
libImaging/Matrix.c | 74 +
libImaging/ModeFilter.c | 78 +
libImaging/MspDecode.c | 91 +
libImaging/Negative.c | 42 +
libImaging/Offset.c | 61 +
libImaging/Pack.c | 566 ++++
libImaging/PackDecode.c | 92 +
libImaging/Palette.c | 316 ++
libImaging/Paste.c | 555 ++++
libImaging/PcdDecode.c | 78 +
libImaging/PcxDecode.c | 75 +
libImaging/PcxEncode.c | 148 +
libImaging/Point.c | 263 ++
libImaging/Quant.c | 1610 +++++++++
libImaging/Quant.h | 40 +
libImaging/QuantDefines.h | 25 +
libImaging/QuantHash.c | 477 +++
libImaging/QuantHash.h | 36 +
libImaging/QuantHeap.c | 150 +
libImaging/QuantHeap.h | 23 +
libImaging/QuantTypes.h | 28 +
libImaging/RankFilter.c | 105 +
libImaging/Raw.h | 15 +
libImaging/RawDecode.c | 89 +
libImaging/RawEncode.c | 89 +
libImaging/Storage.c | 413 +++
libImaging/SunRleDecode.c | 112 +
libImaging/TgaRleDecode.c | 118 +
libImaging/Unpack.c | 1028 ++++++
libImaging/UnpackYCC.c | 162 +
libImaging/UnsharpMask.c | 398 +++
libImaging/XbmDecode.c | 81 +
libImaging/XbmEncode.c | 106 +
libImaging/Zip.h | 57 +
libImaging/ZipDecode.c | 271 ++
libImaging/ZipEncode.c | 341 ++
map.c | 379 +++
outline.c | 179 +
path.c | 587 ++++
selftest.py | 202 ++
setup.cfg | 5 +
setup.py | 477 +++
286 files changed, 58949 insertions(+)
create mode 100644 BUILDME
create mode 100644 CHANGES
create mode 100644 CONTENTS
create mode 100644 Docs/effbot.css
create mode 100644 Docs/index.html
create mode 100644 Docs/pythondoc-PIL.ArgImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.BdfFontFile.html
create mode 100644 Docs/pythondoc-PIL.BmpImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.BufrStubImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.ContainerIO.html
create mode 100644 Docs/pythondoc-PIL.CurImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.DcxImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.EpsImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.ExifTags.html
create mode 100644 Docs/pythondoc-PIL.FitsStubImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.FliImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.FontFile.html
create mode 100644 Docs/pythondoc-PIL.FpxImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.GbrImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.GdImageFile.html
create mode 100644 Docs/pythondoc-PIL.GifImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.GimpGradientFile.html
create mode 100644 Docs/pythondoc-PIL.GimpPaletteFile.html
create mode 100644 Docs/pythondoc-PIL.GribStubImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.Hdf5StubImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.IcnsImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.IcoImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.ImImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.Image.html
create mode 100644 Docs/pythondoc-PIL.ImageChops.html
create mode 100644 Docs/pythondoc-PIL.ImageColor.html
create mode 100644 Docs/pythondoc-PIL.ImageDraw.html
create mode 100644 Docs/pythondoc-PIL.ImageEnhance.html
create mode 100644 Docs/pythondoc-PIL.ImageFile.html
create mode 100644 Docs/pythondoc-PIL.ImageFileIO.html
create mode 100644 Docs/pythondoc-PIL.ImageFilter.html
create mode 100644 Docs/pythondoc-PIL.ImageFont.html
create mode 100644 Docs/pythondoc-PIL.ImageGL.html
create mode 100644 Docs/pythondoc-PIL.ImageGrab.html
create mode 100644 Docs/pythondoc-PIL.ImageOps.html
create mode 100644 Docs/pythondoc-PIL.ImagePalette.html
create mode 100644 Docs/pythondoc-PIL.ImagePath.html
create mode 100644 Docs/pythondoc-PIL.ImageSequence.html
create mode 100644 Docs/pythondoc-PIL.ImageStat.html
create mode 100644 Docs/pythondoc-PIL.ImageTk.html
create mode 100644 Docs/pythondoc-PIL.ImageTransform.html
create mode 100644 Docs/pythondoc-PIL.ImageWin.html
create mode 100644 Docs/pythondoc-PIL.ImtImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.IptcImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.JpegImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.McIdasImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.MicImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.MpegImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.MspImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.OleFileIO.html
create mode 100644 Docs/pythondoc-PIL.PSDraw.html
create mode 100644 Docs/pythondoc-PIL.PaletteFile.html
create mode 100644 Docs/pythondoc-PIL.PalmImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PcdImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PcfFontFile.html
create mode 100644 Docs/pythondoc-PIL.PcxImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PdfImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PixarImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PngImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PpmImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.PsdImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.SgiImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.SpiderImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.SunImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.TarIO.html
create mode 100644 Docs/pythondoc-PIL.TgaImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.TiffImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.TiffTags.html
create mode 100644 Docs/pythondoc-PIL.WalImageFile.html
create mode 100644 Docs/pythondoc-PIL.WmfImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.XVThumbImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.XbmImagePlugin.html
create mode 100644 Docs/pythondoc-PIL.XpmImagePlugin.html
create mode 100644 Images/courB08.bdf
create mode 100644 Images/courB08.pbm
create mode 100644 Images/courB08.pil
create mode 100644 Images/lena.gif
create mode 100644 Images/lena.jpg
create mode 100644 Images/lena.png
create mode 100644 Images/lena.ppm
create mode 100644 MANIFEST.in
create mode 100644 PIL.egg-info/PKG-INFO
create mode 100644 PIL.egg-info/SOURCES.txt
create mode 100644 PIL.egg-info/dependency_links.txt
create mode 100644 PIL.egg-info/top_level.txt
create mode 100644 PIL.pth
create mode 100644 PIL/ArgImagePlugin.py
create mode 100644 PIL/BdfFontFile.py
create mode 100644 PIL/BmpImagePlugin.py
create mode 100644 PIL/BufrStubImagePlugin.py
create mode 100644 PIL/ContainerIO.py
create mode 100644 PIL/CurImagePlugin.py
create mode 100644 PIL/DcxImagePlugin.py
create mode 100644 PIL/EpsImagePlugin.py
create mode 100644 PIL/ExifTags.py
create mode 100644 PIL/FitsStubImagePlugin.py
create mode 100644 PIL/FliImagePlugin.py
create mode 100644 PIL/FontFile.py
create mode 100644 PIL/FpxImagePlugin.py
create mode 100644 PIL/GbrImagePlugin.py
create mode 100644 PIL/GdImageFile.py
create mode 100644 PIL/GifImagePlugin.py
create mode 100644 PIL/GimpGradientFile.py
create mode 100644 PIL/GimpPaletteFile.py
create mode 100644 PIL/GribStubImagePlugin.py
create mode 100644 PIL/Hdf5StubImagePlugin.py
create mode 100644 PIL/IcnsImagePlugin.py
create mode 100644 PIL/IcoImagePlugin.py
create mode 100644 PIL/ImImagePlugin.py
create mode 100644 PIL/Image.py
create mode 100644 PIL/ImageChops.py
create mode 100644 PIL/ImageCms.py
create mode 100644 PIL/ImageColor.py
create mode 100644 PIL/ImageDraw.py
create mode 100644 PIL/ImageDraw2.py
create mode 100644 PIL/ImageEnhance.py
create mode 100644 PIL/ImageFile.py
create mode 100644 PIL/ImageFileIO.py
create mode 100644 PIL/ImageFilter.py
create mode 100644 PIL/ImageFont.py
create mode 100644 PIL/ImageGL.py
create mode 100644 PIL/ImageGrab.py
create mode 100644 PIL/ImageMath.py
create mode 100644 PIL/ImageMode.py
create mode 100644 PIL/ImageOps.py
create mode 100644 PIL/ImagePalette.py
create mode 100644 PIL/ImagePath.py
create mode 100644 PIL/ImageQt.py
create mode 100644 PIL/ImageSequence.py
create mode 100644 PIL/ImageShow.py
create mode 100644 PIL/ImageStat.py
create mode 100644 PIL/ImageTk.py
create mode 100644 PIL/ImageTransform.py
create mode 100644 PIL/ImageWin.py
create mode 100644 PIL/ImtImagePlugin.py
create mode 100644 PIL/IptcImagePlugin.py
create mode 100644 PIL/JpegImagePlugin.py
create mode 100644 PIL/McIdasImagePlugin.py
create mode 100644 PIL/MicImagePlugin.py
create mode 100644 PIL/MpegImagePlugin.py
create mode 100644 PIL/MspImagePlugin.py
create mode 100644 PIL/OleFileIO.py
create mode 100644 PIL/PSDraw.py
create mode 100644 PIL/PaletteFile.py
create mode 100644 PIL/PalmImagePlugin.py
create mode 100644 PIL/PcdImagePlugin.py
create mode 100644 PIL/PcfFontFile.py
create mode 100644 PIL/PcxImagePlugin.py
create mode 100644 PIL/PdfImagePlugin.py
create mode 100644 PIL/PixarImagePlugin.py
create mode 100644 PIL/PngImagePlugin.py
create mode 100644 PIL/PpmImagePlugin.py
create mode 100644 PIL/PsdImagePlugin.py
create mode 100644 PIL/SgiImagePlugin.py
create mode 100644 PIL/SpiderImagePlugin.py
create mode 100644 PIL/SunImagePlugin.py
create mode 100644 PIL/TarIO.py
create mode 100644 PIL/TgaImagePlugin.py
create mode 100644 PIL/TiffImagePlugin.py
create mode 100644 PIL/TiffTags.py
create mode 100644 PIL/WalImageFile.py
create mode 100644 PIL/WmfImagePlugin.py
create mode 100644 PIL/XVThumbImagePlugin.py
create mode 100644 PIL/XbmImagePlugin.py
create mode 100644 PIL/XpmImagePlugin.py
create mode 100644 PIL/__init__.py
create mode 100644 PKG-INFO
create mode 100644 README.txt
create mode 100644 Sane/CHANGES
create mode 100644 Sane/README
create mode 100644 Sane/_sane.c
create mode 100644 Sane/demo_numarray.py
create mode 100644 Sane/demo_pil.py
create mode 100644 Sane/sane.py
create mode 100644 Sane/sanedoc.txt
create mode 100644 Sane/setup.py
create mode 100644 Scripts/README
create mode 100644 Scripts/enhancer.py
create mode 100644 Scripts/explode.py
create mode 100644 Scripts/gifmaker.py
create mode 100644 Scripts/painter.py
create mode 100644 Scripts/pilconvert.py
create mode 100644 Scripts/pildriver.py
create mode 100644 Scripts/pilfile.py
create mode 100644 Scripts/pilfont.py
create mode 100644 Scripts/pilprint.py
create mode 100644 Scripts/player.py
create mode 100644 Scripts/thresholder.py
create mode 100644 Scripts/viewer.py
create mode 100644 Tk/booster.txt
create mode 100644 Tk/install.txt
create mode 100644 Tk/pilbitmap.txt
create mode 100644 Tk/tkImaging.c
create mode 100644 _imaging.c
create mode 100644 _imagingcms.c
create mode 100644 _imagingft.c
create mode 100644 _imagingmath.c
create mode 100644 _imagingtk.c
create mode 100644 decode.c
create mode 100644 display.c
create mode 100644 doctest.py
create mode 100644 encode.c
create mode 100644 libImaging/Access.c
create mode 100644 libImaging/Antialias.c
create mode 100644 libImaging/Bands.c
create mode 100644 libImaging/Bit.h
create mode 100644 libImaging/BitDecode.c
create mode 100644 libImaging/Blend.c
create mode 100644 libImaging/Chops.c
create mode 100644 libImaging/Convert.c
create mode 100644 libImaging/ConvertYCbCr.c
create mode 100644 libImaging/Copy.c
create mode 100644 libImaging/Crc32.c
create mode 100644 libImaging/Crop.c
create mode 100644 libImaging/Dib.c
create mode 100644 libImaging/Draw.c
create mode 100644 libImaging/Effects.c
create mode 100644 libImaging/EpsEncode.c
create mode 100644 libImaging/Except.c
create mode 100644 libImaging/File.c
create mode 100644 libImaging/Fill.c
create mode 100644 libImaging/Filter.c
create mode 100644 libImaging/FliDecode.c
create mode 100644 libImaging/Geometry.c
create mode 100644 libImaging/GetBBox.c
create mode 100644 libImaging/Gif.h
create mode 100644 libImaging/GifDecode.c
create mode 100644 libImaging/GifEncode.c
create mode 100644 libImaging/HexDecode.c
create mode 100644 libImaging/Histo.c
create mode 100644 libImaging/ImDib.h
create mode 100644 libImaging/ImPlatform.h
create mode 100644 libImaging/Imaging.h
create mode 100644 libImaging/Jpeg.h
create mode 100644 libImaging/JpegDecode.c
create mode 100644 libImaging/JpegEncode.c
create mode 100644 libImaging/Lzw.h
create mode 100644 libImaging/LzwDecode.c
create mode 100644 libImaging/Matrix.c
create mode 100644 libImaging/ModeFilter.c
create mode 100644 libImaging/MspDecode.c
create mode 100644 libImaging/Negative.c
create mode 100644 libImaging/Offset.c
create mode 100644 libImaging/Pack.c
create mode 100644 libImaging/PackDecode.c
create mode 100644 libImaging/Palette.c
create mode 100644 libImaging/Paste.c
create mode 100644 libImaging/PcdDecode.c
create mode 100644 libImaging/PcxDecode.c
create mode 100644 libImaging/PcxEncode.c
create mode 100644 libImaging/Point.c
create mode 100644 libImaging/Quant.c
create mode 100644 libImaging/Quant.h
create mode 100644 libImaging/QuantDefines.h
create mode 100644 libImaging/QuantHash.c
create mode 100644 libImaging/QuantHash.h
create mode 100644 libImaging/QuantHeap.c
create mode 100644 libImaging/QuantHeap.h
create mode 100644 libImaging/QuantTypes.h
create mode 100644 libImaging/RankFilter.c
create mode 100644 libImaging/Raw.h
create mode 100644 libImaging/RawDecode.c
create mode 100644 libImaging/RawEncode.c
create mode 100644 libImaging/Storage.c
create mode 100644 libImaging/SunRleDecode.c
create mode 100644 libImaging/TgaRleDecode.c
create mode 100644 libImaging/Unpack.c
create mode 100644 libImaging/UnpackYCC.c
create mode 100644 libImaging/UnsharpMask.c
create mode 100644 libImaging/XbmDecode.c
create mode 100644 libImaging/XbmEncode.c
create mode 100644 libImaging/Zip.h
create mode 100644 libImaging/ZipDecode.c
create mode 100644 libImaging/ZipEncode.c
create mode 100644 map.c
create mode 100644 outline.c
create mode 100644 path.c
create mode 100644 selftest.py
create mode 100644 setup.cfg
create mode 100644 setup.py
diff --git a/BUILDME b/BUILDME
new file mode 100644
index 000000000..a3c629537
--- /dev/null
+++ b/BUILDME
@@ -0,0 +1,11 @@
+# $Id$
+# quick build (for lazy programmers). for more information on the
+# build process, see the README file.
+
+if [ "$1" = "clean" ]; then
+ python setup.py clean
+ rm -f *.so PIL/*.so
+fi
+
+python setup.py build_ext -i
+python selftest.py
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 000000000..b516d32bb
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,1767 @@
+-*- coding: utf-8 -*-
+
+The Python Imaging Library
+$Id$
+
+ACKNOWLEDGEMENTS: PIL wouldn't be what it is without the help of:
+David Ascher, Phil Austin, Douglas Bagnall, Larry Bates, Anthony
+Baxter, William Baxter, Denis Benoit, Jan Blom, Duncan Booth, Alexey
+Borzenkov, Jeff Breidenbach, Roger Burnham, Zac Burns, Gene Cash,
+Kevin Cazabon, Fred Clare, Greg Coats, Chris Cogdon, Greg Couch, Bill
+Crutchfield, Abel Deuring, Tim Docker, Fred Drake, Graham Dumpleton,
+Matthew Ellis, Eric Etheridge, Daniel Fetchinson, Robin Friedrich,
+Pier Paolo Glave, Federico Di Gregorio, Markus Gritsch, Daniel
+Haertle, Greg Hamilton, Mark Hammond, Bernhard Herzog, Rob Hooft, Bob
+Ippolito, Jack Jansen, Bill Janssen, Edward Jones, Richard Jones,
+HÃ¥kan Karlsson, Robert Kern, David Kirtley, Bob Klimek, Matthias
+Klose, Andrew Kuchling, Magnus Källström, Victor Lacina, Ben Last,
+Hamish Lawson, Cesare Leonardi, Andrew MacIntyre, Jan Matejek, Naveen
+Michaud-Agrawal, Gordon McMillan, Skip Montanaro, Fredrik Nehr,
+Russell Nelson, Luciano Nocera, Travis Oliphant, Piet van Oostrum,
+Richard Oudkerk, Paul Pharr, Andres Polit, Conrado Porto Lopes Gouvêa,
+Eric Raymond, Victor Reijs, Bertil Reinhammar, Nicholas Riley, Don
+Rozenberg, Toby Sargeant, Barry Scott, Les Schaffer, Joel Shprentz,
+Klamer Shutte, Gene Skonicki, Niki Spahiev, D. Alan Stewart, Perry
+Stoll, Paul Svensson, Ulrik Svensson, Miki Tebeka, Michael van
+Tellingen, Ivan Tkatchev, Dan Torop, Adam Twardoch, Rune Uhlin, Dmitry
+Vasiliev, Sasha Voynow, Charles Waldman, Collin Winter, Dan Wolfe,
+Ka-Ping Yee, and many others (if your name should be on this list, let
+me know.)
+
+*** Changes from release 1.1.6 to 1.1.7 ***
+
+This section may not be fully complete. For changes since this file
+was last updated, see the repository revision history:
+
+ http://bitbucket.org/effbot/pil-2009-raclette/changesets/
+
+(1.1.7 final)
+
++ Set GIF loop info property to the number of iterations if a NETSCAPE
+ loop extension is present, instead of always setting it to 1 (from
+ Valentino Volonghi).
+
+(1.1.7c1 released)
+
++ Improved PNG compression (from Alexey Borzenkov).
+
++ Read interlaced PNG files (from Conrado Porto Lopes Gouvêa)
+
++ Added various TGA improvements from Alexey Borzenkov, including
+ support for specifying image orientation.
+
++ Bumped block threshold to 16 megabytes, made size estimation a bit
+ more accurate. This speeds up allocation of large images.
+
++ Fixed rounding error in ImagingDrawWideLine.
+
+ "gormish" writes: ImagingDrawWideLine() in Draw.c has a bug in every
+ version I've seen, which leads to different width lines depending on
+ the order of the points in the line. This is especially bad at some
+ angles where a 'width=2' line can completely disappear.
+
++ Added support for RGBA mode to the SGI module (based on code by
+ Karsten Hiddemann).
+
++ Handle repeated IPTC tags (adapted from a patch by Eric Bruning).
+
+ Eric writes: According to the specification, some IPTC tags can be
+ repeated, e.g., tag 2:25 (keywords). PIL 1.1.6 only retained the last
+ instance of that tag. Below is a patch to store all tags. If there are
+ multiple tag instances, they are stored in a (python) list. Single tag
+ instances remain as strings.
+
++ Fixed potential crash in ImageFilter for small target images
+ (reported by Zac Burns and Daniel Fetchinson).
+
++ Use BMP instead of JPEG as temporary show format on Mac OS X.
+
++ Fixed putpixel/new for I;16 with colors > 255.
+
++ Added integer power support to ImagingMath.
+
++ Added limited support for I;16L mode (explicit little endian).
+
++ Moved WMF support into Image.core; enable WMF rendering by default
+ if renderer is available.
+
++ Mark the ARG plugin as obsolete.
+
++ Added version query mechanism to ImageCms and ImageFont, for
+ debugging.
+
++ Added (experimental) ImageCms function for fetching the ICC profile
+ for the current display (currently Windows only).
+
+ Added HWND/HDC support to ImageCms.get_display_profile().
+
++ Added WMF renderer (Windows only).
+
++ Added ImagePointHandler and ImageTransformHandler mixins; made
+ ImageCmsTransform work with im.point.
+
++ Fixed potential endless loop in the XVThumbnail reader (from Nikolai
+ Ugelvik).
+
++ Added Kevin Cazabon's pyCMS package.
+
+ The C code has been moved to _imagingcms.c, the Python interface
+ module is installed as PIL.ImageCMS.
+
+ Added support for in-memory ICC profiles.
+
+ Unified buildTransform and buildTransformFromOpenProfiles.
+
+ The profile can now be either a filename, a profile object, or a
+ file-like object containing an in-memory profile.
+
+ Additional fixes from Florian Böch:
+
+ Very nice - it just needs LCMS flags support so we can use black
+ point compensation and softproofing :) See attached patches. They
+ also fix a naming issue which could cause confusion - display
+ profile (ImageCms wording) actually means proof profile (lcms
+ wording), so I changed variable names and docstrings where
+ applicable. Patches are tested under Python 2.6.
+
++ Improved support for layer names in PSD files (from Sylvain Baubeau)
+
+ Sylvain writes: I needed to be able to retrieve the names of the
+ layers in a PSD files. But PsdImagePlugin.py didn't do the job so I
+ wrote this very small patch.
+
++ Improved RGBA support for ImageTk for 8.4 and newer (from Con
+ Radchenko).
+
+ This replaces the slow run-length based encoding model with true
+ compositing at the Tk level.
+
++ Added support for 16- and 32-bit images to McIdas loader.
+
+ Based on file samples and stand-alone reader code provided by Craig
+ Swank.
+
++ Added ImagePalette support to putpalette.
+
++ Fixed problem with incremental parsing of PNG files.
+
++ Make selftest.py report non-zero status on failure (from Mark
+ Sienkiewicz)
+
++ Add big endian save support and multipage infrastructure to the TIFF
+ writer (from Sebastian Haase).
+
++ Handle files with GPS IFD but no basic EXIF IFD (reported by Kurt
+ Schwehr).
+
++ Added zTXT support (from Andrew Kuchling via Lowell Alleman).
+
++ Fixed potential infinite loop bug in ImageFont (from Guilherme Polo).
+
++ Added sample ICC profiles (from Kevin Cazabon)
+
++ Fixed array interface for I, F, and RGBA/RGBX images.
+
++ Added Chroma subsampling support for JPEG (from Justin Huff).
+
+ Justin writes: Attached is a patch (against PIL 1.1.6) to provide
+ control over the chroma subsampling done by the JPEG encoder. This
+ is often useful for reducing compression artifacts around edges of
+ clipart and text.
+
++ Added USM/Gaussian Blur code from Kevin Cazabon.
+
++ Fixed bug w. uninitialized image data when cropping outside the
+ source image.
+
++ Use ImageShow to implement the Image.show method.
+
+ Most notably, this picks the 'display' utility when available. It
+ also allows application code to register new display utilities via
+ the ImageShow registry.
+
++ Release the GIL in the PNG compressor (from Michael van Tellingen).
+
++ Revised JPEG CMYK handling.
+
+ Always assume Adobe behaviour, both when reading and writing (based on
+ a patch by Kevin Cazabon, and test data by Tim V. and Charlie Clark, and
+ additional debugging by Michael van Tellingen).
+
++ Support for preserving ICC profiles (by Florian Böch via Tim Hatch).
+
+ Florian writes:
+
+ It's a beta, so still needs some testing, but should allow you to:
+ - retain embedded ICC profiles when saving from/to JPEG, PNG, TIFF.
+ Existing code doesn't need to be changed.
+ - access embedded profiles in JPEG, PNG, PSD, TIFF.
+
+ It also includes patches for TIFF to retain IPTC, Photoshop and XMP
+ metadata when saving as TIFF again, read/write TIFF resolution
+ information correctly, and to correct inverted CMYK JPEG files.
+
++ Fixed potential memory leak in median cut quantizer (from Evgeny Salmin).
+
++ Fixed OverflowError when reading upside-down BMP images.
+
++ Added resolution save option for PDF files.
+
+ Andreas Kostyrka writes: I've included a patched PdfImagePlugin.py
+ based on 1.1.6 as included in Ubuntu, that supports a "resolution"
+ save option. Not great, but it makes the PDF saving more useful by
+ allowing PDFs that are not exactly 72dpi.
+
++ Look for Tcl/Tk include files in version-specific include directory
+ (from Encolpe Degoute).
+
++ Fixed grayscale rounding error in ImageColor.getcolor (from Tim
+ Hatch).
+
++ Fixed calculation of mean value in ImageEnhance.Contrast (reported
+ by "roop" and Scott David Daniels).
+
++ Fixed truetype positioning when first character has a negative left
+ bearing (from Ned Batchelder):
+
+ Ned writes: In PIL 1.1.6, ImageDraw.text will position the string
+ incorrectly if the first character has a negative left bearing. To
+ see the problem, show a string like "///" in an italic font. The
+ first slash will be clipped at the left, and the string will be
+ mis-positioned.
+
++ Fixed resolution unit bug in tiff reader/writer (based on code by
+ Florian Höch, Gary Bloom, and others).
+
++ Added simple transparency support for RGB images (reported by
+ Sebastian Spaeth).
+
++ Added support for Unicode filenames in ImageFont.truetype (from Donn
+ Ingle).
+
++ Fixed potential crash in ImageFont.getname method (from Donn Ingle).
+
++ Fixed encoding issue in PIL/WalImageFile (from Santiago M. Mola).
+
+*** Changes from release 1.1.5 to 1.1.6 ***
+
+(1.1.6 released)
+
++ Fixed some 64-bit compatibility warnings for Python 2.5.
+
++ Added threading support for the Sane driver (from Abel Deuring).
+
+(1.1.6b2 released)
+
++ Added experimental "floodfill" function to the ImageDraw module
+ (based on code by Eric Raymond).
+
++ The default arguments for "frombuffer" doesn't match "fromstring"
+ and the documentation; this is a bug, and will most likely be fixed
+ in a future version. In this release, PIL prints a warning message
+ instead. To silence the warning, change any calls of the form
+ "frombuffer(mode, size, data)" to
+
+ frombuffer(mode, size, data, "raw", mode, 0, 1)
+
++ Added "fromarray" function, which takes an object implementing the
+ NumPy array interface and creates a PIL Image from it. (from Travis
+ Oliphant).
+
++ Added NumPy array interface support (__array_interface__) to the
+ Image class (based on code by Travis Oliphant).
+
+ This allows you to easily convert between PIL image memories and
+ NumPy arrays:
+
+ import numpy, Image
+
+ im = Image.open('lena.jpg')
+
+ a = numpy.asarray(im) # a is readonly
+
+ im = Image.fromarray(a)
+
++ Fixed CMYK polarity for JPEG images, by treating all images as
+ "Adobe CMYK" images. (thanks to Cesare Leonardi and Kevin Cazabon
+ for samples, debugging, and patches).
+
+(1.1.6b1 released)
+
++ Added 'expand' option to the Image 'rotate' method. If true, the
+ output image is made large enough to hold the entire rotated image.
+
++ Changed the ImageDraw 'line' method to always draw the last pixel in
+ a polyline, independent of line angle.
+
++ Fixed bearing calculation and clipping in the ImageFont truetype
+ renderer; this could lead to clipped text, or crashes in the low-
+ level _imagingft module. (based on input from Adam Twardoch and
+ others).
+
++ Added ImageQt wrapper module, for converting PIL Image objects to
+ QImage objects in an efficient way.
+
++ Fixed 'getmodebands' to return the number of bands also for "PA"
+ and "LA" modes. Added 'getmodebandnames' helper that return the
+ band names.
+
+(1.1.6a2 released)
+
++ Added float/double support to the TIFF loader (from Russell
+ Nelson).
+
++ Fixed broken use of realloc() in path.c (from Jan Matejek)
+
++ Added save support for Spider images (from William Baxter).
+
++ Fixed broken 'paste' and 'resize' operations in pildriver
+ (from Bill Janssen).
+
++ Added support for duplex scanning to the Sane interface (Abel
+ Deuring).
+
+(1.1.6a1 released)
+
++ Fixed a memory leak in "convert(mode)", when converting from
+ L to P.
+
++ Added pixel access object. The "load" method now returns a
+ access object that can be used to directly get and set pixel
+ values, using ordinary [x, y] notation:
+
+ pixel = im.load()
+ v = pixel[x, y]
+ pixel[x, y] = v
+
+ If you're accessing more than a few pixels, this is a lot
+ faster than using getpixel/putpixel.
+
++ Fixed building on Cygwin (from Miki Tebeka).
+
++ Fixed "point(callable)" on unloaded images (reported by HÃ¥kan
+ Karlsson).
+
++ Fixed size bug in ImageWin.ImageWindow constructor (from Victor
+ Reijs)
+
++ Fixed ImageMath float() and int() operations for Python 2.4
+ (reported by Don Rozenberg).
+
++ Fixed "RuntimeError: encoder error -8 in tostring" problem for
+ wide "RGB", "I", and "F" images.
+
++ Fixed line width calculation.
+
+(1.1.6a0 released)
+
++ Fixed byte order issue in Image.paste(ink) (from Ka-Ping Yee).
+
++ Fixed off-by-0.5 errors in the ANTIALIAS code (based on input
+ from Douglas Bagnall).
+
++ Added buffer interface support to the Path constructor. If
+ a buffer is provided, it is assumed to contain a flat array
+ of float coordinates (e.g. array.array('f', seq)).
+
++ Added new ImageMath module.
+
++ Fixed ImageOps.equalize when used with a small number of distinct
+ values (reported by David Kirtley).
+
++ Fixed potential integer division in PSDraw.image (from Eric Etheridge).
+
+*** Changes from release 1.1 to 1.1.5 ***
+
+(1.1.5c2 and 1.1.5 final released)
+
++ Added experimental PERSPECTIVE transform method (from Jeff Breiden-
+ bach).
+
+(1.1.5c1 released)
+
++ Make sure "thumbnail" never generates zero-wide or zero-high images
+ (reported by Gene Skonicki)
+
++ Fixed a "getcolors" bug that could result in a zero count for some
+ colors (reported by Richard Oudkerk).
+
++ Changed default "convert" palette to avoid "rounding errors" when
+ round-tripping white source pixels (reported by Henryk Gerlach and
+ Jeff Epler).
+
+(1.1.5b3 released)
+
++ Don't crash in "quantize" method if the number of colors requested
+ is larger than 256. This release raises a ValueError exception;
+ future versions may return a mode "RGB" image instead (reported
+ by Richard Oudkerk).
+
++ Added WBMP read/write support (based on code by Duncan Booth).
+
+(1.1.5b2 released)
+
++ Added DPI read/write support to the PNG codec. The decoder sets
+ the info["dpi"] attribute for PNG files with appropriate resolution
+ settings. The encoder uses the "dpi" option (based on code by Niki
+ Spahiev).
+
++ Added limited support for "point" mappings from mode "I" to mode "L".
+ Only 16-bit values are supported (other values are clipped), the lookup
+ table must contain exactly 65536 entries, and the mode argument must be
+ set to "L".
+
++ Added support for Mac OS X icns files (based on code by Bob Ippolito).
+
++ Added "ModeFilter" support to the ImageFilter module.
+
++ Added support for Spider images (from William Baxter). See the
+ comments in PIL/SpiderImagePlugin.py for more information on this
+ format.
+
+(1.1.5b1 released)
+
++ Added new Sane release (from Ralph Heinkel). See the Sane/README
+ and Sane/CHANGES files for more information.
+
++ Added experimental PngInfo chunk container to the PngImageFile
+ module. This can be used to add arbitrary chunks to a PNG file.
+ Create a PngInfo instance, use "add" or "add_text" to add chunks,
+ and pass the instance as the "pnginfo" option when saving the
+ file.
+
++ Added "getpalette" method. This returns the palette as a list,
+ or None if the image has no palette. To modify the palette, use
+ "getpalette" to fetch the current palette, modify the list, and
+ put it back using "putpalette".
+
++ Added optional flattening to the ImagePath "tolist" method.
+ tolist() or tolist(0) returns a list of 2-tuples, as before.
+ tolist(1) returns a flattened list instead.
+
+(1.1.5a5 released)
+
++ Fixed BILINEAR/BICUBIC/ANTIALIAS filtering for mode "LA".
+
++ Added "getcolors()" method. This is similar to the existing histo-
+ gram method, but looks at color values instead of individual layers,
+ and returns an unsorted list of (count, color) tuples.
+
+ By default, the method returns None if finds more than 256 colors.
+ If you need to look for more colors, you can pass in a limit (this
+ is used to allocate internal tables, so you probably don't want to
+ pass in too large values).
+
++ Build improvements: Fixed building under AIX, improved detection of
+ FreeType2 and Mac OS X framework libraries, and more. Many thanks
+ to everyone who helped test the new "setup.py" script!
+
+(1.1.5a4 released)
+
++ The "save" method now looks for a file format driver before
+ creating the file.
+
++ Don't use antialiased truetype fonts when drawing in mode "P", "I",
+ and "F" images.
+
++ Rewrote the "setup.py" file. The new version scans for available
+ support libraries, and configures both the libImaging core library
+ and the bindings in one step.
+
+ To use specific versions of the libraries, edit the ROOT variables
+ in the setup.py file.
+
++ Removed threaded "show" viewer; use the old "show" implementation
+ instead (Windows).
+
++ Added deprecation warnings to Image.offset, ImageDraw.setink, and
+ ImageDraw.setfill.
+
++ Added width option to ImageDraw.line(). The current implementation
+ works best for straight lines; it does not support line joins, so
+ polylines won't look good.
+
++ ImageDraw.Draw is now a factory function instead of a class. If
+ you need to create custom draw classes, inherit from the ImageDraw
+ class. All other code should use the factory function.
+
++ Fixed loading of certain PCX files (problem reported by Greg
+ Hamilton, who also provided samples).
+
++ Changed _imagingft.c to require FreeType 2.1 or newer. The
+ module can still be built with earlier versions; see comments
+ in _imagingft.c for details.
+
+(1.1.5a3 released)
+
++ Added 'getim' method, which returns a PyCObject wrapping an
+ Imaging pointer. The description string is set to IMAGING_MAGIC.
+ See Imaging.h for pointer and string declarations.
+
++ Fixed reading of TIFF JPEG images (problem reported by Ulrik
+ Svensson).
+
++ Made ImageColor work under Python 1.5.2
+
++ Fixed division by zero "equalize" on very small images (from
+ Douglas Bagnall).
+
+(1.1.5a2 released)
+
++ The "paste" method now supports the alternative "paste(im, mask)"
+ syntax (in this case, the box defaults to im's bounding box).
+
++ The "ImageFile.Parser" class now works also for PNG files with
+ more than one IDAT block.
+
++ Added DPI read/write to the TIFF codec, and fixed writing of
+ rational values. The decoder sets the info["dpi"] attribute
+ for TIFF files with appropriate resolution settings. The
+ encoder uses the "dpi" option.
+
++ Disable interlacing for small (or narrow) GIF images, to
+ work around what appears to be a hard-to-find bug in PIL's
+ GIF encoder.
+
++ Fixed writing of mode "P" PDF images. Made mode "1" PDF
+ images smaller.
+
++ Made the XBM reader a bit more robust; the file may now start
+ with a few whitespace characters.
+
++ Added support for enhanced metafiles to the WMF driver. The
+ separate PILWMF kit lets you render both placeable WMF files
+ and EMF files as raster images. See
+
+ http://effbot.org/downloads#pilwmf
+
+(1.1.5a1 released)
+
++ Replaced broken WMF driver with a WMF stub plugin (see below).
+
++ Fixed writing of mode "1", "L", and "CMYK" PDF images (based on
+ input from Nicholas Riley and others).
+
++ Fixed adaptive palette conversion for zero-width or zero-height
+ images (from Chris Cogdon)
+
++ Fixed reading of PNG images from QuickTime 6 (from Paul Pharr)
+
++ Added support for StubImageFile plugins, including stub plugins
+ for BUFR, FITS, GRIB, and HDF5 files. A stub plugin can identify
+ a given file format, but relies on application code to open and
+ save files in that format.
+
++ Added optional "encoding" argument to the ImageFont.truetype
+ factory. This argument can be used to specify non-Unicode character
+ maps for fonts that support that. For example, to draw text using
+ the Microsoft Symbol font, use:
+
+ font = ImageFont.truetype("symbol.ttf", 16, encoding="symb")
+ draw.text((0, 0), unichr(0xF000 + 0xAA))
+
+ (note that the symbol font uses characters in the 0xF000-0xF0FF
+ range)
+
+ Common encodings are "unic" (Unicode), "symb" (Microsoft Symbol),
+ "ADOB" (Adobe Standard), "ADBE" (Adobe Expert), and "armn" (Apple
+ Roman). See the FreeType documentation for more information.
+
++ Made "putalpha" a bit more robust; you can now attach an alpha
+ layer to a plain "L" or "RGB" image, and you can also specify
+ constant alphas instead of alpha layers (using integers or colour
+ names).
+
++ Added experimental "LA" mode support.
+
+ An "LA" image is an "L" image with an attached transparency layer.
+ Note that support for "LA" is not complete; some operations may
+ fail or produce unexpected results.
+
++ Added "RankFilter", "MinFilter", "MedianFilter", and "MaxFilter"
+ classes to the ImageFilter module.
+
++ Improved support for applications using multiple threads; PIL
+ now releases the global interpreter lock for many CPU-intensive
+ operations (based on work by Kevin Cazabon).
+
++ Ignore Unicode characters in the PCF loader (from Andres Polit)
+
++ Fixed typo in OleFileIO.loadfat, which could affect loading of
+ FlashPix and Image Composer images (Daniel Haertle)
+
++ Fixed building on platforms that have Freetype but don't have
+ Tcl/Tk (Jack Jansen, Luciano Nocera, Piet van Oostrum and others)
+
++ Added EXIF GPSInfo read support for JPEG files. To extract
+ GPSInfo information, open the file, extract the exif dictionary,
+ and check for the key 0x8825 (GPSInfo). If present, it contains
+ a dictionary mapping GPS keys to GPS values. For a list of keys,
+ see the EXIF specification.
+
+ The "ExifTags" module contains a GPSTAGS dictionary mapping GPS
+ tags to tag names.
+
++ Added DPI read support to the PCX and DCX codecs (info["dpi"]).
+
++ The "show" methods now uses a built-in image viewer on Windows.
+ This viewer creates an instance of the ImageWindow class (see
+ below) and keeps it running in a separate thread. NOTE: This
+ was disabled in 1.1.5a4.
+
++ Added experimental "Window" and "ImageWindow" classes to the
+ ImageWin module. These classes allow you to create a WCK-style
+ toplevel window, and use it to display raster data.
+
++ Fixed some Python 1.5.2 issues (to build under 1.5.2, use the
+ Makefile.pre.in/Setup.in approach)
+
++ Added support for the TIFF FillOrder tag. PIL can read mode "1",
+ "L", "P" and "RGB" images with non-standard FillOrder (based on
+ input from Jeff Breidenbach).
+
+(1.1.4 final released)
+
++ Fixed ImageTk build problem on Unix.
+
+(1.1.4b2 released)
+
++ Improved building on Mac OS X (from Jack Jansen).
+
++ Improved building on Windows with MinGW (from Klamer Shutte).
+
++ If no font is specified, ImageDraw now uses the embedded default
+ font. Use the "load" or "truetype" methods to load a real font.
+
++ Added embedded default font to the ImageFont module (currently
+ an 8-pixel Courier font, taken from the X window distribution).
+
+(1.1.4b1 released)
+
++ Added experimental EXIF support for JPEG files. To extract EXIF
+ information from a JPEG file, open the file as usual, and call the
+ "_getexif" method. If successful, this method returns a dictionary
+ mapping EXIF TIFF tags to values. If the file does not contain EXIF
+ data, the "_getexif" method returns None.
+
+ The "ExifTags" module contains a dictionary mapping tags to tag
+ names.
+
+ This interface will most likely change in future versions.
+
++ Fixed a bug when using the "transparency" option with the GIF
+ writer.
+
++ Added limited support for "bitfield compression" in BMP files
+ and DIB buffers, for 15-bit, 16-bit, and 32-bit images. This
+ also fixes a problem with ImageGrab module when copying screen-
+ dumps from the clipboard on 15/16/32-bit displays.
+
++ Added experimental WAL (Quake 2 textures) loader. To use this
+ loader, import WalImageFile and call the "open" method in that
+ module.
+
+(1.1.4a4 released)
+
++ Added updated SANE driver (Andrew Kuchling, Abel Deuring)
+
++ Use Python's "mmap" module on non-Windows platforms to read some
+ uncompressed formats using memory mapping. Also added a "frombuffer"
+ function that allows you to access the contents of an existing string
+ or buffer object as if it were an image object.
+
++ Fixed a memory leak that could appear when processing mode "P"
+ images (from Pier Paolo Glave)
+
++ Ignore Unicode characters in the BDF loader (from Graham Dumpleton)
+
+(1.1.4a3 released; windows only)
+
++ Added experimental RGBA-on-RGB drawing support. To use RGBA
+ colours on an RGB image, pass "RGBA" as the second string to
+ the ImageDraw.Draw constructor.
+
++ Added support for non-ASCII strings (Latin-1) and Unicode
+ to the truetype font renderer.
+
++ The ImageWin "Dib" object can now be constructed directly from
+ an image object.
+
++ The ImageWin module now allows you use window handles as well
+ as device contexts. To use a window handle, wrap the handle in
+ an ImageWin.HWND object, and pass in this object instead of the
+ device context.
+
+(1.1.4a2 released)
+
++ Improved support for 16-bit unsigned integer images (mode "I;16").
+ This includes TIFF reader support, and support for "getextrema"
+ and "point" (from Klamer Shutte).
+
++ Made the BdfFontFile reader a bit more robust (from Kevin Cazabon
+ and Dmitry Vasiliev)
+
++ Changed TIFF writer to always write Compression tag, even when
+ using the default compression (from Greg Couch).
+
++ Added "show" support for Mac OS X (from Dan Wolfe).
+
++ Added clipboard support to the "ImageGrab" module (Windows only).
+ The "grabclipboard" function returns an Image object, a list of
+ filenames (not in 1.1.4), or None if neither was found.
+
+(1.1.4a1 released)
+
++ 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 final released)
+
++ Made setup.py look for old versions of zlib. For some back-
+ ground, see: http://www.gzip.org/zlib/advisory-2002-03-11.txt
+
+(1.1.3c2 released)
+
++ 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 released)
+
++ 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 and 1.1.2 final released)
+
++ Adapted to Python 2.1. Among other things, all uses of the
+ "regex" module has been repleased 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 released)
+
++ 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)
+
+*** Changes from release 1.0 to 1.1 ***
+
++ 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".
+
+*** Changes from release 0.3b2 to 1.0 final ***
+
++ If there's no 16-bit integer (like on a Cray T3E), set
+ INT16 to the smallest integer available. Most of the
+ library works just fine anyway (from Bill Crutchfield)
+
++ Tweaks to make drawing work on big-endian platforms.
+
+(1.0c2 released)
+
++ 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 released)
+
++ 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 released)
+
++ 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 premultipled 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 released)
+
++ 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.
+
+*** Changes from release 0.2 (b5) to 0.3 (b2) ***
+
+(0.3b2 released)
+
+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) accidently
+ 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 released)
+
+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.
+
+(0.3a4 released)
+
++ 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 released)
+
+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 released)
+
+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 released)
+
++ Make sure image is loaded in "tostring".
+
++ Added floating point packer (native 32-bit floats only).
+
+*** Changes from release 0.1b1 to 0.2 (b5) ***
+
++ Modified "fromstring" and "tostring" methods to use file codecs.
+ Also added "fromstring" factory method to create an image directly
+ from data in a string.
+
++ Added support for 32-bit floating point images (mode "F"). You
+ can convert between "L" and "F" images, and apply a subset of the
+ available image processing methods on the "F" image. You can also
+ read virtually any data format into a floating point image memory;
+ see the section on "Decoding Floating Point Data" in the handbook
+ for more information.
+
+(0.2b5 released; on windows only)
+
++ 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:
+
+ 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 strengh (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:
+
+ "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 back-
+ ground.
+
++ 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 released)
+
++ 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
+
++ 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.
+
+(0.2b2 released)
+(0.2b1 released; Windows only)
+
++ Fixed filling of complex polygons. The ImageDraw "line" and
+ "polygon" methods also accept Path objects.
+
++ The ImageTk "PhotoImage" object can now be constructed directly
+ from an image. You can also pass the object itself to Tkinter,
+ instead of using the "image" attribute. Finally, using "paste"
+ on a displayed image automatically updates the display.
+
++ The ImageTk "BitmapImage" object allows you to create transparent
+ overlays from 1-bit images. You can pass the object itself to
+ Tkinter. The constructor takes the same arguments as the Tkinter
+ BitmapImage class; use the "foreground" option to set the colour
+ of the overlay.
+
++ Added a "putdata" method to the Image class. This can be used to
+ load a 1-layer image with data from a sequence object or a string.
+ An optional floating point scale and offset can be used to adjust
+ the data to fit into the 8-bit pixel range. Also see the "getdata"
+ method.
+
++ Added the EXTENT method to the Image "transform" method. This can
+ be used to quickly crop, stretch, shrink, or mirror a subregion
+ from another image.
+
++ Adapted to Python 1.4.
+
++ Added a project makefile for Visual C++ 4.x. This allows you to
+ easily build a dynamically linked version of PIL for Windows 95
+ and NT.
+
++ A Tk "booster" patch for Windows is available. It gives dramatic
+ performance improvements for some displays. Has been tested with
+ Tk 4.2 only, but is likely to work with Tk 4.1 as well. See the Tk
+ subdirectory for details.
+
++ You can now save 1-bit images in the XBM format. In addition, the
+ Image class now provides a "tobitmap" method which returns a string
+ containing an XBM representation of the image. Quite handy to use
+ with Tk.
+
++ More conversions, including "RGB" to "1" and more.
+
+(0.2a1 released)
+
++ Where earlier versions accepted lists, this version accepts arbitrary
+ Python sequences (including strings, in some cases). A few resource
+ leaks were plugged in the process.
+
++ The Image "paste" method now allows the box to extend outside
+ the target image. The size of the box, the image to be pasted,
+ and the optional mask must still match.
+
++ The ImageDraw module now supports filled polygons, outlined and
+ filled ellipses, and text. Font support is rudimentary, though.
+
++ The Image "point" method now takes an optional mode argument,
+ allowing you to convert the image while translating it. Currently,
+ this can only be used to convert "L" or "P" images to "1" images
+ (creating thresholded images or "matte" masks).
+
++ An Image "getpixel" method has been added. For single band images,
+ it returns the pixel value at a given position as an integer.
+ For n-band images, it returns an n-tuple of integers.
+
++ An Image "getdata" method has been added. It returns a sequence
+ object representing the image as a 1-dimensional array. Only len()
+ and [] can be used with this sequence. This method returns a
+ reference to the existing image data, so changes in the image
+ will be immediately reflected in the sequence object.
+
++ Fixed alignment problems in the Windows BMP writer.
+
++ If converting an "RGB" image to "RGB" or "L", you can give a second
+ argument containing a colour conversion matrix.
+
++ An Image "getbbox" method has been added. It returns the bounding
+ box of data in an image, considering the value 0 as background.
+
++ An Image "offset" method has been added. It returns a new image
+ where the contents of the image have been offset the given distance
+ in X and/or Y direction. Data wraps between edges.
+
++ Saves PDF images. The driver creates a binary PDF 1.1 files, using
+ JPEG compression for "L", "RGB", and "CMYK" images, and hex encoding
+ (same as for PostScript) for other formats.
+
++ The "paste" method now accepts "1" masks. Zero means transparent,
+ any other pixel value means opaque. This is faster than using an
+ "L" transparency mask.
+
++ Properly writes EPS files (and properly prints images to postscript
+ printers as well).
+
++ Reads 4-bit BMP files, as well as 4 and 8-bit Windows ICO and CUR
+ files. Cursor animations are not supported.
+
++ Fixed alignment problems in the Sun raster loader.
+
++ Added "draft" and "thumbnail" methods. The draft method is used
+ to optimize loading of JPEG and PCD files, the thumbnail method is
+ used to create a thumbnail representation of an image.
+
++ Added Windows display support, via the ImageWin class (see the
+ handbook for details).
+
++ Added raster conversion for EPS files. This requires GNU or Aladdin
+ Ghostscript, and probably works on UNIX only.
+
++ Reads PhotoCD (PCD) images. The base resolution (768x512) can be
+ read from a PhotoCD file.
+
++ Eliminated some compiler warnings. Bindings now compile cleanly in C++
+ mode. Note that the Imaging library itself must be compiled in C mode.
+
++ Added "bdf2pil.py", which converts BDF fonts into images with associated
+ metrics. This is definitely work in progress. For info, see description
+ in script for details.
+
++ Fixed a bug in the "ImageEnhance.py" module.
+
++ Fixed a bug in the netpbm save hack in "GifImagePlugin.py"
+
++ Fixed 90 and 270 degree rotation of rectangular images.
+
++ Properly reads 8-bit TIFF palette-color images.
+
++ Reads plane separated RGB and CMYK TIFF images.
+
++ Added driver debug mode. This is enabled by setting Image.DEBUG
+ to a non-zero value. Try the -D option to "pilfile.py" and see what
+ happens.
+
++ Don't crash on "atend" constructs in PostScript files.
+
++ Only the Image module imports _imaging directly. Other modules
+ should refer to the binding module as "Image.core".
+
+*** Changes from release 0.0 to 0.1 (b1) ***
+
++ A handbook is available (distributed separately).
+
++ The coordinate system is changed so that (0,0) is now located
+ in the upper left corner. This is in compliancy with ISO 12087
+ and 90% of all other image processing and graphics libraries.
+
++ Modes "1" (bilevel) and "P" (palette) have been introduced. Note
+ that bilevel images are stored with one byte per pixel.
+
++ The Image "crop" and "paste" methods now accepts None as the
+ box argument, to refer to the full image (self, that is).
+
++ The Image "crop" method now works properly.
+
++ The Image "point" method is now available. You can use either a
+ lookup table or a function taking one argument.
+
++ The Image join function has been renamed to "merge".
+
++ An Image "composite" function has been added. It is identical
+ to copy() followed by paste(mask).
+
++ An Image "eval" function has been added. It is currently identical
+ to point(function); that is, only a single image can be processed.
+
++ A set of channel operations has been added. See the "ImageChops"
+ module, test_chops.py, and the handbook for details.
+
++ Added the "pilconvert" utility, which converts image files. Note
+ that the number of output formats are still quite restricted.
+
++ Added the "pilfile" utility, which quickly identifies image files
+ (without loading them, in most cases).
+
++ Added the "pilprint" utility, which prints image files to Postscript
+ printers.
+
++ Added a rudimentary version of the "pilview" utility, which is
+ simple image viewer based on Tk. Only File/Exit and Image/Next
+ works properly.
+
++ An interface to Tk has been added. See "Lib/ImageTk.py" and README
+ for details.
+
++ An interface to Jack Jansen's Img library has been added (thanks to
+ Jack). This allows you to read images through the Img extensions file
+ format handlers. See the file "Lib/ImgExtImagePlugin.py" for details.
+
++ Postscript printing is provided through the PSDraw module. See the
+ handbook for details.
diff --git a/CONTENTS b/CONTENTS
new file mode 100644
index 000000000..8846fb945
--- /dev/null
+++ b/CONTENTS
@@ -0,0 +1,299 @@
+Imaging/README
+
+Imaging/CHANGES
+
+Imaging/CONTENTS
+Imaging/MANIFEST
+
+Imaging/BUILDME
+
+Imaging/setup.py
+
+Imaging/selftest.py
+Imaging/doctest.py
+
+Imaging/libImaging/Imaging.h
+Imaging/libImaging/ImDib.h
+Imaging/libImaging/ImPlatform.h
+
+Imaging/libImaging/Quant.h
+Imaging/libImaging/QuantHash.h
+Imaging/libImaging/QuantHeap.h
+Imaging/libImaging/QuantDefines.h
+Imaging/libImaging/QuantTypes.h
+
+Imaging/libImaging/Access.c
+Imaging/libImaging/Antialias.c
+Imaging/libImaging/Bands.c
+Imaging/libImaging/Blend.c
+Imaging/libImaging/Chops.c
+Imaging/libImaging/Convert.c
+Imaging/libImaging/ConvertYCbCr.c
+Imaging/libImaging/Copy.c
+Imaging/libImaging/Crc32.c
+Imaging/libImaging/Crop.c
+Imaging/libImaging/Dib.c
+Imaging/libImaging/Draw.c
+Imaging/libImaging/Effects.c
+Imaging/libImaging/Except.c
+Imaging/libImaging/File.c
+Imaging/libImaging/Fill.c
+Imaging/libImaging/Filter.c
+Imaging/libImaging/Geometry.c
+Imaging/libImaging/GetBBox.c
+Imaging/libImaging/Histo.c
+Imaging/libImaging/Matrix.c
+Imaging/libImaging/ModeFilter.c
+Imaging/libImaging/Negative.c
+Imaging/libImaging/Offset.c
+Imaging/libImaging/Pack.c
+Imaging/libImaging/Palette.c
+Imaging/libImaging/Paste.c
+Imaging/libImaging/Point.c
+Imaging/libImaging/Quant.c
+Imaging/libImaging/QuantHash.c
+Imaging/libImaging/QuantHeap.c
+Imaging/libImaging/RankFilter.c
+Imaging/libImaging/Storage.c
+Imaging/libImaging/Unpack.c
+Imaging/libImaging/UnpackYCC.c
+Imaging/libImaging/UnsharpMask.c
+
+Imaging/libImaging/Bit.h
+Imaging/libImaging/Gif.h
+Imaging/libImaging/Jpeg.h
+Imaging/libImaging/Lzw.h
+Imaging/libImaging/Raw.h
+Imaging/libImaging/Zip.h
+Imaging/libImaging/BitDecode.c
+Imaging/libImaging/EpsEncode.c
+Imaging/libImaging/FliDecode.c
+Imaging/libImaging/GifDecode.c
+Imaging/libImaging/GifEncode.c
+Imaging/libImaging/HexDecode.c
+Imaging/libImaging/JpegDecode.c
+Imaging/libImaging/JpegEncode.c
+Imaging/libImaging/LzwDecode.c
+Imaging/libImaging/MspDecode.c
+Imaging/libImaging/PackDecode.c
+Imaging/libImaging/PcdDecode.c
+Imaging/libImaging/PcxEncode.c
+Imaging/libImaging/PcxDecode.c
+Imaging/libImaging/RawDecode.c
+Imaging/libImaging/RawEncode.c
+Imaging/libImaging/SunRleDecode.c
+Imaging/libImaging/TgaRleDecode.c
+Imaging/libImaging/XbmDecode.c
+Imaging/libImaging/XbmEncode.c
+Imaging/libImaging/ZipDecode.c
+Imaging/libImaging/ZipEncode.c
+
+Imaging/_imaging.c
+Imaging/decode.c
+Imaging/encode.c
+Imaging/display.c
+Imaging/map.c
+Imaging/outline.c
+Imaging/path.c
+
+Imaging/_imagingtk.c
+Imaging/_imagingft.c
+Imaging/_imagingcms.c
+Imaging/_imagingmath.c
+
+Imaging/PIL.pth
+Imaging/PIL/__init__.py
+Imaging/PIL/ArgImagePlugin.py
+Imaging/PIL/BdfFontFile.py
+Imaging/PIL/BmpImagePlugin.py
+Imaging/PIL/BufrStubImagePlugin.py
+Imaging/PIL/ContainerIO.py
+Imaging/PIL/CurImagePlugin.py
+Imaging/PIL/DcxImagePlugin.py
+Imaging/PIL/EpsImagePlugin.py
+Imaging/PIL/ExifTags.py
+Imaging/PIL/FitsStubImagePlugin.py
+Imaging/PIL/FliImagePlugin.py
+Imaging/PIL/FontFile.py
+Imaging/PIL/FpxImagePlugin.py
+Imaging/PIL/GbrImagePlugin.py
+Imaging/PIL/GdImageFile.py
+Imaging/PIL/GifImagePlugin.py
+Imaging/PIL/GimpGradientFile.py
+Imaging/PIL/GimpPaletteFile.py
+Imaging/PIL/GribStubImagePlugin.py
+Imaging/PIL/Hdf5StubImagePlugin.py
+Imaging/PIL/IcoImagePlugin.py
+Imaging/PIL/IcnsImagePlugin.py
+Imaging/PIL/Image.py
+Imaging/PIL/ImageChops.py
+Imaging/PIL/ImageCms.py
+Imaging/PIL/ImageColor.py
+Imaging/PIL/ImageDraw.py
+Imaging/PIL/ImageDraw2.py
+Imaging/PIL/ImageEnhance.py
+Imaging/PIL/ImageFile.py
+Imaging/PIL/ImageFileIO.py
+Imaging/PIL/ImageFilter.py
+Imaging/PIL/ImageFont.py
+Imaging/PIL/ImageGL.py
+Imaging/PIL/ImageGrab.py
+Imaging/PIL/ImageMath.py
+Imaging/PIL/ImageMode.py
+Imaging/PIL/ImageOps.py
+Imaging/PIL/ImagePalette.py
+Imaging/PIL/ImagePath.py
+Imaging/PIL/ImageQt.py
+Imaging/PIL/ImageSequence.py
+Imaging/PIL/ImageShow.py
+Imaging/PIL/ImageStat.py
+Imaging/PIL/ImageTk.py
+Imaging/PIL/ImageTransform.py
+Imaging/PIL/ImageWin.py
+Imaging/PIL/ImImagePlugin.py
+Imaging/PIL/ImtImagePlugin.py
+Imaging/PIL/IptcImagePlugin.py
+Imaging/PIL/JpegImagePlugin.py
+Imaging/PIL/McIdasImagePlugin.py
+Imaging/PIL/MicImagePlugin.py
+Imaging/PIL/MpegImagePlugin.py
+Imaging/PIL/MspImagePlugin.py
+Imaging/PIL/OleFileIO.py
+Imaging/PIL/PaletteFile.py
+Imaging/PIL/PalmImagePlugin.py
+Imaging/PIL/PcdImagePlugin.py
+Imaging/PIL/PcfFontFile.py
+Imaging/PIL/PcxImagePlugin.py
+Imaging/PIL/PdfImagePlugin.py
+Imaging/PIL/PixarImagePlugin.py
+Imaging/PIL/PngImagePlugin.py
+Imaging/PIL/PpmImagePlugin.py
+Imaging/PIL/PsdImagePlugin.py
+Imaging/PIL/PSDraw.py
+Imaging/PIL/SgiImagePlugin.py
+Imaging/PIL/SpiderImagePlugin.py
+Imaging/PIL/SunImagePlugin.py
+Imaging/PIL/TarIO.py
+Imaging/PIL/TgaImagePlugin.py
+Imaging/PIL/TiffImagePlugin.py
+Imaging/PIL/TiffTags.py
+Imaging/PIL/WalImageFile.py
+Imaging/PIL/WmfImagePlugin.py
+Imaging/PIL/XbmImagePlugin.py
+Imaging/PIL/XpmImagePlugin.py
+Imaging/PIL/XVThumbImagePlugin.py
+
+Imaging/Docs/index.html
+Imaging/Docs/effbot.css
+Imaging/Docs/pythondoc-PIL.ArgImagePlugin.html
+Imaging/Docs/pythondoc-PIL.BdfFontFile.html
+Imaging/Docs/pythondoc-PIL.BmpImagePlugin.html
+Imaging/Docs/pythondoc-PIL.BufrStubImagePlugin.html
+Imaging/Docs/pythondoc-PIL.ContainerIO.html
+Imaging/Docs/pythondoc-PIL.CurImagePlugin.html
+Imaging/Docs/pythondoc-PIL.DcxImagePlugin.html
+Imaging/Docs/pythondoc-PIL.EpsImagePlugin.html
+Imaging/Docs/pythondoc-PIL.ExifTags.html
+Imaging/Docs/pythondoc-PIL.FitsStubImagePlugin.html
+Imaging/Docs/pythondoc-PIL.FliImagePlugin.html
+Imaging/Docs/pythondoc-PIL.FontFile.html
+Imaging/Docs/pythondoc-PIL.FpxImagePlugin.html
+Imaging/Docs/pythondoc-PIL.GbrImagePlugin.html
+Imaging/Docs/pythondoc-PIL.GdImageFile.html
+Imaging/Docs/pythondoc-PIL.GifImagePlugin.html
+Imaging/Docs/pythondoc-PIL.GimpGradientFile.html
+Imaging/Docs/pythondoc-PIL.GimpPaletteFile.html
+Imaging/Docs/pythondoc-PIL.GribStubImagePlugin.html
+Imaging/Docs/pythondoc-PIL.Hdf5StubImagePlugin.html
+Imaging/Docs/pythondoc-PIL.IcoImagePlugin.html
+Imaging/Docs/pythondoc-PIL.IcnsImagePlugin.html
+Imaging/Docs/pythondoc-PIL.Image.html
+Imaging/Docs/pythondoc-PIL.ImageChops.html
+Imaging/Docs/pythondoc-PIL.ImageColor.html
+Imaging/Docs/pythondoc-PIL.ImageDraw.html
+Imaging/Docs/pythondoc-PIL.ImageEnhance.html
+Imaging/Docs/pythondoc-PIL.ImageFile.html
+Imaging/Docs/pythondoc-PIL.ImageFileIO.html
+Imaging/Docs/pythondoc-PIL.ImageFilter.html
+Imaging/Docs/pythondoc-PIL.ImageFont.html
+Imaging/Docs/pythondoc-PIL.ImageGL.html
+Imaging/Docs/pythondoc-PIL.ImageGrab.html
+Imaging/Docs/pythondoc-PIL.ImageOps.html
+Imaging/Docs/pythondoc-PIL.ImagePalette.html
+Imaging/Docs/pythondoc-PIL.ImagePath.html
+Imaging/Docs/pythondoc-PIL.ImageSequence.html
+Imaging/Docs/pythondoc-PIL.ImageStat.html
+Imaging/Docs/pythondoc-PIL.ImageTk.html
+Imaging/Docs/pythondoc-PIL.ImageTransform.html
+Imaging/Docs/pythondoc-PIL.ImageWin.html
+Imaging/Docs/pythondoc-PIL.ImImagePlugin.html
+Imaging/Docs/pythondoc-PIL.ImtImagePlugin.html
+Imaging/Docs/pythondoc-PIL.IptcImagePlugin.html
+Imaging/Docs/pythondoc-PIL.JpegImagePlugin.html
+Imaging/Docs/pythondoc-PIL.McIdasImagePlugin.html
+Imaging/Docs/pythondoc-PIL.MicImagePlugin.html
+Imaging/Docs/pythondoc-PIL.MpegImagePlugin.html
+Imaging/Docs/pythondoc-PIL.MspImagePlugin.html
+Imaging/Docs/pythondoc-PIL.OleFileIO.html
+Imaging/Docs/pythondoc-PIL.PaletteFile.html
+Imaging/Docs/pythondoc-PIL.PalmImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PcdImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PcfFontFile.html
+Imaging/Docs/pythondoc-PIL.PcxImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PdfImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PixarImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PngImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PpmImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PsdImagePlugin.html
+Imaging/Docs/pythondoc-PIL.PSDraw.html
+Imaging/Docs/pythondoc-PIL.SgiImagePlugin.html
+Imaging/Docs/pythondoc-PIL.SpiderImagePlugin.html
+Imaging/Docs/pythondoc-PIL.SunImagePlugin.html
+Imaging/Docs/pythondoc-PIL.TarIO.html
+Imaging/Docs/pythondoc-PIL.TgaImagePlugin.html
+Imaging/Docs/pythondoc-PIL.TiffImagePlugin.html
+Imaging/Docs/pythondoc-PIL.TiffTags.html
+Imaging/Docs/pythondoc-PIL.WalImageFile.html
+Imaging/Docs/pythondoc-PIL.WmfImagePlugin.html
+Imaging/Docs/pythondoc-PIL.XbmImagePlugin.html
+Imaging/Docs/pythondoc-PIL.XpmImagePlugin.html
+Imaging/Docs/pythondoc-PIL.XVThumbImagePlugin.html
+
+Imaging/Scripts/pilconvert.py
+Imaging/Scripts/pildriver.py
+Imaging/Scripts/pilfile.py
+Imaging/Scripts/pilfont.py
+Imaging/Scripts/pilprint.py
+
+Imaging/Images/lena.gif
+Imaging/Images/lena.png
+Imaging/Images/lena.ppm
+Imaging/Images/lena.jpg
+
+Imaging/Images/courB08.bdf
+Imaging/Images/courB08.pbm
+Imaging/Images/courB08.pil
+
+Imaging/Sane/README
+Imaging/Sane/CHANGES
+Imaging/Sane/setup.py
+Imaging/Sane/sanedoc.txt
+Imaging/Sane/_sane.c
+Imaging/Sane/sane.py
+Imaging/Sane/demo_numarray.py
+Imaging/Sane/demo_pil.py
+
+Imaging/Scripts/README
+Imaging/Scripts/enhancer.py
+Imaging/Scripts/explode.py
+Imaging/Scripts/gifmaker.py
+Imaging/Scripts/painter.py
+Imaging/Scripts/player.py
+Imaging/Scripts/viewer.py
+Imaging/Scripts/thresholder.py
+
+Imaging/Tk/tkImaging.c
+Imaging/Tk/install.txt
+Imaging/Tk/booster.txt
+Imaging/Tk/pilbitmap.txt
+
diff --git a/Docs/effbot.css b/Docs/effbot.css
new file mode 100644
index 000000000..b03ae458c
--- /dev/null
+++ b/Docs/effbot.css
@@ -0,0 +1,118 @@
+/* effbot.css */
+
+BODY {
+ font: 100% Georgia, Times, serif;
+ color: black;
+ margin: 0px 20px 0px 20px;
+}
+
+#effbot-body {
+ background: white;
+ padding: 10px 40px 10px 40px;
+ max-width: 50em;
+}
+
+#effbot-menu {
+ display: none;
+}
+
+.adsense {
+ background: #f8fff8;
+ border: 1px solid #084;
+ padding: 10px 4px 4px 4px;
+}
+
+.sidebar {
+ border: 1px solid #000;
+ float: right; clear: right;
+ width: 200px;
+ background: white;
+ padding: 10px;
+ margin: 0px -25px 10px 0px;
+}
+
+/* visual style */
+
+P {
+ line-height: 1.3em;
+}
+
+CODE, PRE {
+ font: 100% "Courier New", Courier, Monaco, monospace;
+ color: #042; margin-left: 20px;
+}
+
+H1, H2, H3 {
+ font-family: Georgia, Times, serif;
+ color: #084; margin-top: 30px;
+}
+
+H1, H2, { border-top: 1px solid #084; }
+
+H4, H5, H6 {
+ font-family: Georgia, Times, serif;
+ color: #084; margin-top: 15px;
+}
+
+A:link, A:hover { color: #084; }
+A:visited { color: #404040; }
+
+UL LI { list-style-type: square; }
+
+.title { margin-bottom: 2px; color: #084; }
+.info { font-size: 80%; color: #084; margin-top: 0px; }
+
+.bluebox { color: #084; margin-top: 10px; }
+
+.highlight { background: #cfc; }
+.mark { color: #084; }
+.small { font-size: 80%; }
+.display { background: #eee; padding: 20px; }
+
+.note {
+ background: #efe;
+ border-top: 1px solid #084;
+ border-bottom: 1px solid #084;
+ padding: 2px 20px;
+}
+
+.example {
+ border-top: medium solid #084;
+ border-bottom: medium solid #084;
+ padding: 5px;
+}
+
+.figure {
+ border-top: medium solid #084;
+ border-bottom: medium solid #084;
+ padding: 5px;
+}
+
+.fixme {
+ background: #eee;
+ border: 1px solid #084;
+ padding: 2x 20px;
+}
+
+.simpletable {
+ border: 1px solid #084;
+ border-collapse: collapse;
+}
+
+.simpletable TH {
+ text-align: left;
+ background: #cfc;
+ border: 1px solid #084;
+ margin: 0px;
+ padding: 1px 5px;
+}
+
+.simpletable TD {
+ border: 1px solid #084;
+ margin: 0px;
+ padding: 5px;
+}
+
+/* xmldiff markup */
+.new { text-decoration: underline; color: red; background: #fff0f0; }
+.old { text-decoration: line-through; color: blue; background: #f0f0ff; }
diff --git a/Docs/index.html b/Docs/index.html
new file mode 100644
index 000000000..fbc76a99d
--- /dev/null
+++ b/Docs/index.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+The Python Imaging Library
+
+
+
+
Image plugin for the GD uncompressed format. Note that this format
+is not supported by the standard Image.open function. To use
+this plugin, you have to import the GdImageFile module and
+use the GdImageFile.open function.
+
(New in 1.1.4) Creates an image memory from pixel data in a string
+or byte buffer.
+
+This function is similar to fromstring, but uses data in
+the byte buffer, where possible. This means that changes to the
+original buffer object are reflected in this image). Not all modes
+can share memory; support modes include "L", "RGBX", "RGBA", and
+"CMYK". For other modes, this function behaves like a corresponding
+call to the fromstring function.
+
+Note that this function decodes pixel data only, not entire images.
+If you have an entire image file in a string, wrap it in a
+StringIO object, and use open to load it.
+
+
Creates an image memory from pixel data in a string.
+
+In its simplest form, this function takes three arguments
+(mode, size, and unpacked pixel data).
+
+You can also use any pixel decoder supported by PIL. For more
+information on available decoders, see the section Writing Your Own File Decoder.
+
+Note that this function decodes pixel data only, not entire images.
+If you have an entire image in a string, wrap it in a
+StringIO object, and use open to load it.
+
+
Gets a list of individual band names. Given a mode, this function
+returns a tuple containing the names of individual bands (use
+getmodetype to get the mode used to store each individual
+band.
+
+
+This is a lazy operation; this function identifies the file, but the
+actual image data is not read from the file until you try to process
+the data (or call the load method).
+
+
+
file
+
+A filename (string) or a file object. The file object
+ must implement read, seek, and tell methods,
+ and be opened in binary mode.
+
Returns a converted copy of this image. For the "P" mode, this
+method translates pixels through the palette. If mode is
+omitted, a mode is chosen so that all information in the image
+and the palette can be represented without a palette.
+
+The current version supports all possible conversions between
+"L", "RGB" and "CMYK."
+
+When translating a colour image to black and white (mode "L"),
+the library uses the ITU-R 601-2 luma transform:
+
+L = R * 299/1000 + G * 587/1000 + B * 114/1000
+
+When translating a greyscale image into a bilevel image (mode
+"1"), all non-zero values are set to 255 (white). To use other
+thresholds, use the point method.
+
+
Returns a rectangular region from this image. The box is a
+4-tuple defining the left, upper, right, and lower pixel
+coordinate.
+
+This is a lazy operation. Changes to the source image may or
+may not be reflected in the cropped image. To break the
+connection, call the load method on the cropped
+copy.
+
+
Configures the image file loader so it returns a version of the
+image that as closely as possible matches the given mode and
+size. For example, you can use this method to convert a colour
+JPEG to greyscale while loading it, or to extract a 128x192
+version from a PCD file.
+
+Note that this method modifies the Image object in place. If
+the image has already been loaded, this method has no effect.
+
+
Returns the contents of this image as a sequence object
+containing pixel values. The sequence object is flattened, so
+that values for line one follow directly after the values of
+line zero, and so on.
+
+Note that the sequence object returned by this method is an
+internal PIL data type, which only supports certain sequence
+operations. To convert it to an ordinary sequence (e.g. for
+printing), use list(im.getdata()).
+
+
Returns a histogram for the image. The histogram is returned as
+a list of pixel counts, one for each pixel value in the source
+image. If the image has more than one band, the histograms for
+all bands are concatenated (for example, the histogram for an
+"RGB" image contains 768 values).
+
+A bilevel image (mode "1") is treated as a greyscale ("L") image
+by this method.
+
+If a mask is provided, the method returns a histogram for those
+parts of the image where the mask image is non-zero. The mask
+image must have the same size as the image, and be either a
+bi-level image (mode "1") or a greyscale image ("L").
+
+
(Deprecated) Returns a copy of the image where the data has been
+offset by the given distances. Data wraps around the edges. If
+yoffset is omitted, it is assumed to be equal to xoffset.
+
+This method is deprecated. New code should use the offset
+function in the ImageChops module.
+
+
Pastes another image into this image. The box argument is either
+a 2-tuple giving the upper left corner, a 4-tuple defining the
+left, upper, right, and lower pixel coordinate, or None (same as
+(0, 0)). If a 4-tuple is given, the size of the pasted image
+must match the size of the region.
+
+If the modes don't match, the pasted image is converted to the
+mode of this image (see the convert method for
+details).
+
+Instead of an image, the source can be a integer or tuple
+containing pixel values. The method then fills the region
+with the given colour. When creating RGB images, you can
+also use colour strings as supported by the ImageColor module.
+
+If a mask is given, this method updates only the regions
+indicated by the mask. You can use either "1", "L" or "RGBA"
+images (in the latter case, the alpha band is used as mask).
+Where the mask is 255, the given image is copied as is. Where
+the mask is 0, the current value is preserved. Intermediate
+values can be used for transparency effects.
+
+Note that if you paste an "RGBA" image, the alpha band is
+ignored. You can work around this by using the same image as
+both source image and mask.
+
+
+
im
+
+
+
box
+
+
An optional 4-tuple giving the region to paste into.
+ If a 2-tuple is used instead, it's treated as the upper left
+ corner. If omitted or None, the source is pasted into the
+ upper left corner.
+
+ If an image is given as the second argument and there is no
+ third, the box defaults to (0, 0), and the second argument
+ is interpreted as a mask image.
+
Copies pixel data to this image. This method copies data from a
+sequence object into the image, starting at the upper left
+corner (0, 0), and continuing until either the image or the
+sequence ends. The scale and offset values are used to adjust
+the sequence values: pixel = value*scale + offset.
+
+
Modifies the pixel at the given position. The colour is given as
+a single numerical value for single-band images, and a tuple for
+multi-band images.
+
+Note that this method is relatively slow. For more extensive
+changes, use paste or the ImageDraw module
+instead.
+
+
+An optional resampling filter. This can be
+ one of NEAREST (use nearest neighbour), BILINEAR
+ (linear interpolation in a 2x2 environment), BICUBIC
+ (cubic spline interpolation in a 4x4 environment), or
+ ANTIALIAS (a high-quality downsampling filter).
+ If omitted, or if the image has mode "1" or "P", it is
+ set NEAREST.
+
+An optional resampling filter. This can be
+ one of NEAREST (use nearest neighbour), BILINEAR
+ (linear interpolation in a 2x2 environment), or BICUBIC
+ (cubic spline interpolation in a 4x4 environment).
+ If omitted, or if the image has mode "1" or "P", it is
+ set NEAREST.
+
Saves this image under the given filename. If no format is
+specified, the format to use is determined from the filename
+extension, if possible.
+
+Keyword options can be used to provide additional instructions
+to the writer. If a writer doesn't recognise an option, it is
+silently ignored. The available options are described later in
+this handbook.
+
+You can use a file object instead of a filename. In this case,
+you must always specify the format. The file object must
+implement the seek, tell, and write
+methods, and be opened in binary mode.
+
+
Seeks to the given frame in this sequence file. If you seek
+beyond the end of the sequence, the method raises an
+EOFError exception. When a sequence file is opened, the
+library automatically seeks to frame 0.
+
+Note that in the current version of the library, most sequence
+formats only allows you to seek to the next frame.
+
+
Make this image into a thumbnail. This method modifies the
+image to contain a thumbnail version of itself, no larger than
+the given size. This method calculates an appropriate thumbnail
+size to preserve the aspect of the image, calls the draft method to configure the file reader (where
+applicable), and finally resizes the image.
+
+Note that the bilinear and bicubic filters in the current
+version of PIL are not well-suited for thumbnail generation.
+You should use ANTIALIAS unless speed is much more
+important than quality.
+
+Also note that this function modifies the Image object in place.
+If you need to use the full resolution image as well, apply this
+method to a copy of the original image.
+
+
+
size
+
+
+
resample
+
+Optional resampling filter. This can be one
+ of NEAREST, BILINEAR, BICUBIC, or
+ ANTIALIAS (best quality). If omitted, it defaults
+ to NEAREST (this will be changed to ANTIALIAS in a
+ future version).
+
Transforms this image. This method creates a new image with the
+given size, and the same mode as the original, and copies data
+to the new image using the given transform.
+
+
+
size
+
+
+
method
+
+The transformation method. This is one of
+ EXTENT (cut out a rectangular subregion), AFFINE
+ (affine transform), PERSPECTIVE (perspective
+ transform), QUAD (map a quadrilateral to a
+ rectangle), or MESH (map a number of source quadrilaterals
+ in one operation).
+
+
data
+
+
+
resample
+
+Optional resampling filter. It can be one of
+ NEAREST (use nearest neighbour), BILINEAR
+ (linear interpolation in a 2x2 environment), or
+ BICUBIC (cubic spline interpolation in a 4x4
+ environment). If omitted, or if the image has mode
+ "1" or "P", it is set to NEAREST.
+
The ImageChops module contains a number of arithmetical image
+operations, called channel operations ("chops"). These can be
+used for various purposes, including special effects, image
+compositions, algorithmic painting, and more.
+
+At this time, channel operations are only implemented for 8-bit
+images (e.g. "L" and "RGB").
+
+Most channel operations take one or two image arguments and returns
+a new image. Unless otherwise noted, the result of a channel
+operation is always clipped to the range 0 to MAX (which is 255 for
+all modes supported by the operations in this module).
+
+Superimposes two images on top of each other. If you multiply an
+image with a solid black image, the result is black. If you multiply
+with a solid white image, the image is unaffected.
+
+
+Returns a copy of the image where data has been offset by the given
+distances. Data wraps around the edges. If yoffset is omitted, it
+is assumed to be equal to xoffset.
+
+
+This class can be used to control the brighntess of an image. An
+enhancement factor of 0.0 gives a black image, factor 1.0 gives the
+original image.
+
+This class can be used to adjust the colour balance of an image, in
+a manner similar to the controls on a colour TV set. An enhancement
+factor of 0.0 gives a black and white image, a factor of 1.0 gives
+the original image.
+
+This class can be used to control the contrast of an image, similar
+to the contrast control on a TV set. An enhancement factor of 0.0
+gives an solid grey image, factor 1.0 gives the original image.
+
+This class can be used to adjust the sharpness of an image. The
+enhancement factor 0.0 gives a blurred image, 1.0 gives the original
+image, and a factor of 2.0 gives a sharpened image.
+
Adds buffering to a stream file object, in order to
+provide seek and tell methods required
+by the Image.open method. The stream object must
+implement read and close methods.
+
+
Load a TrueType or OpenType font file, and create a font object.
+This function loads a font object from the given file, and creates
+a font object for a font of the given size.
+
+This function requires the _imagingft service.
+
+
+
filename
+
+A truetype font file. Under Windows, if the file
+ is not found in this filename, the loader also looks in Windows
+ fonts directory
+
The ImageFont module defines a class with the same name.
+Instances of this class store bitmap fonts, and are used with the
+text method of the ImageDraw class.
+
+PIL uses it's own font file format to store bitmap fonts. You can
+use the pilfont utility to convert BDF and PCF font
+descriptors (X window font formats) to this format.
+
+Starting with version 1.1.4, PIL can be configured to support
+TrueType and OpenType fonts. For earlier version, TrueType
+support is only available as part of the imToolkit package
+
+
(New in 1.1.3) The ImageOps module contains a number of
+'ready-made' image processing operations. This module is somewhat
+experimental, and most operators only work on L and RGB images.
+
+
Maximize (normalize) image contrast. This function calculates a
+histogram of the input image, removes cutoff percent of the
+lightest and darkest pixels from the histogram, and remaps the image
+so that the darkest pixel becomes black (0), and the lightest
+becomes white (255).
+
+
Colorize grayscale image. The black and white
+arguments should be RGB tuples; this function calculates a colour
+wedge mapping all black pixels in the source image to the first
+colour, and all white pixels to the second colour.
+
+
+The given image must have mode "1". Pixels having value 0 are
+treated as transparent. Options, if any, are passed on to
+Tkinter. The most commonly used option is foreground,
+which is used to specify the colour for the non-transparent
+parts. See the Tkinter documentation for information on how to
+specify colours.
+
+
Create a photo image object. The constructor takes either
+a PIL image, or a mode and a size. Alternatively, you can
+use the file or data options to initialize
+the photo image object.
+
+An 8-tuple (x0, y0, x1, y1, x2, y2, y3, y3) which
+ contain the upper left, lower left, lower right, and upper right
+ corner of the source quadrilateral.
+
+This function takes a 6-tuple (a, b, c, d, e, f) which
+contain the first two rows from an affine transform matrix. For
+each pixel (x, y) in the output image, the new value is
+taken from a position (a x + b y + c,
+d x + e y + f) in the input image, rounded to
+nearest pixel.
+
+This function can be used to scale, translate, rotate, and shear the
+original image.
+
+
+
matrix
+
+A 6-tuple (a, b, c, d, e, f) containing
+ the first two rows from an affine transform matrix.
+
Define a transform to extract a subregion from an image.
+
+Maps a rectangle (defined by two corners) from the image to a
+rectangle of the given size. The resulting image will contain
+data sampled from between the corners, such that (x0, y0)
+in the input image will end up at (0,0) in the output image,
+and (x1, y1) at size.
+
+This method can be used to crop, stretch, shrink, or mirror an
+arbitrary rectangle in the current image. It is slightly slower than
+crop, but about as fast as a corresponding resize
+operation.
+
+
+
bbox
+
+A 4-tuple (x0, y0, x1, y1) which specifies
+ two points in the input image's coordinate system.
+
+Maps a quadrilateral (a region defined by four corners) from the
+image to a rectangle of the given size.
+
+
+
xy
+
+An 8-tuple (x0, y0, x1, y1, x2, y2, y3, y3) which
+ contain the upper left, lower left, lower right, and upper right
+ corner of the source quadrilateral.
+
Create a Windows bitmap with the given mode and size. The mode can
+be one of "1", "L", "P", or "RGB".
+
+If the display requires a palette, this constructor creates a
+suitable palette and associates it with the image. For an "L" image,
+128 greylevels are allocated. For an "RGB" image, a 6x6x6 colour
+cube is used, together with 20 greylevels.
+
+To make sure that palettes work properly under Windows, you must
+call the palette method upon certain events from Windows.
+
+Device context (HDC), cast to a Python integer,
+ or a HDC or HWND instance. In PythonWin, you can use the
+ GetHandleAttrib method of the CDC class to get
+ a suitable handle.
+
Installs the palette associated with the image in the
+given device context.
+
+This method should be called upon QUERYNEWPALETTE
+and PALETTECHANGED events from Windows. If this
+method returns a non-zero value, one or more display
+palette entries were changed, and the image should be
+redrawn.
+
+
This class encapsulates the interface to an OLE 2 structured
+storage file. Use the listdir and openstream
+methods to access the contents of this file.
+
Image plugin for the Spider image format. This format is is used
+by the SPIDER software, in processing image data from electron
+microscopy and tomography.