Supported APIs and limitations¶
Latest release: 12.2.0-alpha.1.
pillow-rs implements a subset of Pillow. Use the tables below to decide whether it fits your application. A supported operation can still reject unsupported modes, options, or input formats.
Supported API families¶
| What you want to do | APIs to start with |
|---|---|
| Create, open, save, and inspect images | PIL.Image: new, open; image save, size, mode, pixel access |
| Resize, crop, rotate, or convert | Image resize, crop, rotate, convert |
| Flip, mirror, fit, or apply image operations | PIL.ImageOps and PIL.ImageChops |
| Draw shapes and text | PIL.ImageDraw |
| Adjust color or apply filters | PIL.ImageColor, PIL.ImageEnhance, PIL.ImageFilter |
| Load fonts and measure text | Selected PIL.ImageFont APIs; see font limits below |
| Work with palettes, frames, or statistics | PIL.ImagePalette, PIL.ImageSequence, PIL.ImageStat |
Start with the Python recipes, Rust guide, or JavaScript guide. JavaScript uses its own API names and initialization; Python examples cannot be pasted directly into JavaScript. The complete selected-operation inventory is available when you need to check a specific public path.
Partial or unsupported¶
| Area | Limitation |
|---|---|
| Full Pillow replacement | APIs outside the selected operation inventory are not promised |
| Image modes and options | Support varies by operation; verify the combinations your application uses |
| Codecs | JPEG, PNG, GIF, BMP, TIFF, WebP, and ICO/CUR have selected supported paths; metadata, frames, and encoding differ by format |
| AVIF | Partial and outside the current browser codec contract |
| Fonts | Selected font loading, masks, and metrics; full shaping, color-font behavior, and FreeType replacement are not promised |
| GUI, screen capture, external color management | Outside the supported public contract |
| GPU acceleration | Optional and operation-dependent; choosing GPU can fall back to CPU |
| API stability | Alpha releases may introduce breaking changes |
The release uses image-slash-star 0.1.2 and fontdone 2.14.3-alpha.10. Dependency projects' newer documentation can describe features this release does not include. Consult their versioned codec reference and font reference when needed.
Before replacing Pillow¶
Try the operations, images, fonts, frame metadata, and expected errors your application relies on in separate Pillow and pillow-rs environments. Migration steps explain how. For measured comparisons and open implementation work, see the contributor coverage evidence and roadmap.