Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
P

psd-tools

> 编程语言
Open source

Python package for reading Adobe Photoshop PSD files

1.4K stars0 likes0 views
WebsiteGitHub

About

Python package for reading Adobe Photoshop PSD files

psd-tools

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

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.

GitHub Issues· 35 open

View all on GitHub
  • #828

    composite: an unknown effect class makes Layer.__repr__ raise, which aborts every composite

    Updated Sep 17, 2026
  • #826

    composite: a malformed stroke-effect descriptor is tolerated when measured but raises when drawn

    bugcompositeUpdated Sep 17, 2026
  • #824

    composite: a pattern or gradient stroke fill is placed on a box truncated from a fractional stroke width

    bugcompositepriority:p2Updated Sep 17, 2026
  • #823

    composite: _draw_path() seeds a pen-only raster as fully covered

    bugcompositepriority:p3Updated Sep 17, 2026
  • #797

    Effect-aware output bbox for layer.composite()

    enhancementcompositepriority:p2Updated Sep 16, 2026
  • #786

    chore: adopt the remaining pydocstyle rules (D1, D200, D401)

    documentationpriority:p3Updated Sep 16, 2026
  • #716

    Tracking: compositor code-quality refactoring

    enhancementcompositepriority:p2Updated Sep 16, 2026
  • #812

    proposal: define the layer-container contract instead of emulating `list`

    enhancementapipriority:p1Updated Sep 16, 2026
  • #799

    Stroke effects: replace edge-dilation with a signed-distance band

    enhancementcompositepriority:p1Updated Sep 16, 2026
  • #789

    proposal: give psd_tools.api a typed boundary for descriptor access

    enhancementapipriority:p1Updated Sep 16, 2026

Highlights

  • •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
  • •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

> Tags

Pythonphotoshoppsdpython

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言