psd-tools is a Python package for working with Adobe Photoshop PSD files
as described in specification.
- Read and write of the low-level PSD/PSB file structure
- Raw layer image export in NumPy and PIL format
- 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
- 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
Use pip to install the package:
pip install psd-toolsFor advanced layer compositing features, install with the composite extra:
pip install 'psd-tools[composite]'The composite extra provides optional dependencies (aggdraw, scipy, scikit-image)
for advanced rendering features:
- Vector shape and stroke rendering
- Gradient and pattern fills
- Layer effects rendering
Basic compositing works without these dependencies using cached previews or simple pixel-based operations. Note that the composite extra may not be available on all platforms (notably Python 3.14 on Windows).
from psd_tools import PSDImage
psd = PSDImage.open('example.psd')
psd.composite().save('example.png')
for layer in psd:
print(layer)
layer_image = layer.composite()
layer_image.save('%s.png' % layer.name)Check out the documentation for features and details.
See contributing page.
Note
PSD specification is far from complete. If you cannot find a desired information in the documentation, you should inspect the low-level data structure.