psd-tools

psd-tools is a Python package for working with Adobe Photoshop PSD files as described in specification.

Installation

Use pip to install the package:

pip install psd-tools

For advanced layer compositing features, install with the composite extra:

pip install psd-tools[composite]

This installs optional dependencies (aggdraw, scipy, scikit-image) required for:

  • Vector shape and stroke rendering

  • Gradient and pattern fills

  • Layer effects rendering

Basic compositing operations work without these dependencies by using cached previews or simple NumPy-based operations.

Note

The composite extra may not be available on all platforms. Notably, Python 3.14 on Windows currently lacks aggdraw support.

Note

In order to extract images from 32bit PSD files PIL/Pillow must be built with LITTLECMS or LITTLECMS2 support (apt-get install liblcms2-2 or brew install little-cms2)

Getting started

from psd_tools import PSDImage

psd = PSDImage.open('example.psd')
psd.composite().save('example.png')

for layer in psd:
    print(layer)
    image = layer.composite()

Check out the Usage documentation for more examples.

Features

Supported:

  • Read and write of the low-level PSD/PSB file structure

  • Raw layer image export in NumPy and PIL format

Limited support:

  • Composition of basic pixel-based layers

  • Composition of fill layer effects

  • Vector masks

  • Editing of some layer attributes such as layer name

  • Basic editing of pixel layers and groups, such as adding or removing a layer

  • Blending modes except for dissolve

  • Drawing of bezier curves

Not supported:

  • Editing of various layers such as type layers, shape layers, smart objects, etc.

  • Editing of texts in type layers

  • Composition of adjustment layers

  • Composition of many layer effects

  • Font rendering

Indices and tables