Skip to content

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.