The handbook Fredrik Lundh wrote described PIL 1.1.7. It is not reproduced here. This page maps what was in it to where the same material lives today.
| Module | What it does | Here |
|---|---|---|
Image | Opening, saving, converting, resizing, the class everything returns | Image module |
ImageDraw | Lines, shapes and text onto an image | ImageDraw |
ImageFilter | Blur, sharpen, edge finding, custom kernels | ImageFilter |
ImageEnhance | Brightness, contrast, colour, sharpness | ImageEnhance |
ImageOps | Autocontrast, fit, pad, invert, exif_transpose | ImageOps |
ImageChops | Channel arithmetic, difference, offset | Pillow docs |
ImageColor | Colour names and strings to values | Palette tool |
ImageFont | Bitmap and TrueType fonts | See the note on text below |
ImageTk | Showing images in Tkinter | Tkinter introduction |
ImagePath | Compact coordinate lists for drawing | ImagePath |
ImageFile | Decoding from a stream, truncated files | ImageFile |
ImageSequence | Frames of an animation | Pillow docs |
ImageStat | Sums, means and extrema of an image | Pillow docs |
ImageGrab | Screen captures | Pillow docs |
Handbook era code measures text like this:
w, h = draw.textsize("hello", font=font)
textsize was removed in Pillow 10. The replacement returns a box rather than a size:
left, top, right, bottom = draw.textbbox((0, 0), "hello", font=font)
w = right - left
h = bottom - top
The converter flags this, along with everything else that changed.