Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

psd-tools/psd-tools

Open more actions menu

Repository files navigation

psd-tools

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

PyPI Version Tests Document Status

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
  • Composition of adjustment layers (BrightnessContrast, Levels, Curves, Exposure, Invert, Posterize, Threshold)
  • 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 many layer effects
  • Font rendering

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]'

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).

Getting started

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.

Contributing

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.

About

Python package for reading Adobe Photoshop PSD files

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.