Skip to main content

logo

python version PyPI version Downloads Status Downloads License pypi format Chat on Discord Maintenance Bump version pages-build-deployment Documentation Status photoshop-2024 photoshop-2023 photoshop-2022 photoshop-2021 photoshop-2020 photoshop-CC2019 photoshop-CC2018 photoshop-CC2017

All Contributors

Python API for Photoshop.

⚠️ Only for Windows platform !

The example above was created with Photoshop Python API. Check it out at https://loonghao.github.io/photoshop-python-api/examples.

Has been tested and used Photoshop version:

Photoshop Version Supported
2025
2024
2023
2022
2021
2020
cc2019
cc2018
cc2017

Installing

You can install via pip.

pip install photoshop_python_api

Since it uses COM (Component Object Model) connect Photoshop, it can be used in any DCC software with a python interpreter.

Hello World

import photoshop.api as ps
app = ps.Application()
doc = app.documents.add()
new_doc = doc.artLayers.add()
text_color = ps.SolidColor()
text_color.rgb.red = 0
text_color.rgb.green = 255
text_color.rgb.blue = 0
new_text_layer = new_doc
new_text_layer.kind = ps.LayerKind.TextLayer
new_text_layer.textItem.contents = 'Hello, World!'
new_text_layer.textItem.position = [160, 167]
new_text_layer.textItem.size = 40
new_text_layer.textItem.color = text_color
options = ps.JPEGSaveOptions(quality=5)
# # save to jpg
jpg = 'd:/hello_world.jpg'
doc.saveAs(jpg, options, asCopy=True)
app.doJavaScript(f'alert("save to jpg: {jpg}")')

demo

Photoshop Session

Use it as context.

from photoshop import Session


with Session(action="new_document") as ps:
    doc = ps.active_document
    text_color = ps.SolidColor()
    text_color.rgb.green = 255
    new_text_layer = doc.artLayers.add()
    new_text_layer.kind = ps.LayerKind.TextLayer
    new_text_layer.textItem.contents = 'Hello, World!'
    new_text_layer.textItem.position = [160, 167]
    new_text_layer.textItem.size = 40
    new_text_layer.textItem.color = text_color
    options = ps.JPEGSaveOptions(quality=5)
    jpg = 'd:/hello_world.jpg'
    doc.saveAs(jpg, options, asCopy=True)
    ps.app.doJavaScript(f'alert("save to jpg: {jpg}")')

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Hal
Hal

💻
voodraizer
voodraizer

🐛
brunosly
brunosly

🐛
tubi
tubi

🐛
wjxiehaixin
wjxiehaixin

🐛
罗马钟
罗马钟

🐛
clement
clement

🐛
krevlinmen
krevlinmen

🐛
Thomas
Thomas

🐛
CaptainCsaba
CaptainCsaba

🐛
Il Harper
Il Harper

💻
blunderedbishop
blunderedbishop

🐛
MrTeferi
MrTeferi

💻
Damien Chambe
Damien Chambe

💻
Ehsan Akbari Tabar
Ehsan Akbari Tabar

🐛
Michael Ikemann
Michael Ikemann

🐛
Enguerrand DE SMET
Enguerrand DE SMET

💻
Proton
Proton

💻

This project follows the all-contributors specification. Contributions of any kind are welcome!

Repobeats analytics

Repobeats analytics

how to get Photoshop program ID

Get-ChildItem "HKLM:\SOFTWARE\Classes" |
  ?{ ($_.PSChildName -match "^[a-z]+\.[a-z]+(\.\d+)?$") -and ($_.GetSubKeyNames() -contains "CLSID") } |
  ?{ $_.PSChildName -match "Photoshop.Application" } | ft PSChildName

get_program_id

How to get a list of COM objects from the registry

Useful links

🛠️ Development Guide

Welcome to the development guide for the Photoshop Python API project! This section outlines our development practices and standards to ensure code quality and consistency.

📋 Quick Start for Contributors

# Clone the repository
git clone https://github.com/loonghao/photoshop-python-api.git
cd photoshop-python-api

# Install dependencies with Poetry
poetry install

# Install pre-commit hooks
pre-commit install

# Run tests
pytest

🎨 Code Style & Quality

We maintain high code quality standards through automated tools and consistent style guidelines:

  • Style Guide: We follow the Google Python Style Guide with project-specific adjustments:

    • Line length: 120 characters max
    • Docstrings: Google style format
    • Quotes: Double quotes preferred
  • Quality Tools:

🔄 Git Workflow

We use a structured workflow to maintain a clean and organized repository:

  • Commit Messages: Follow Conventional Commits format

    <type>(<scope>): <description>
    
    [optional body]
    
    [optional footer(s)]
    

    Common types: feat, fix, docs, style, refactor, test, chore

  • Branching Strategy:

    • Main branch: main - Always stable and deployable
    • Feature branches: feature/<feature-name>
    • Bug fixes: fix/<bug-description>
    • Documentation: docs/<doc-description>

🧪 Testing

We value thorough testing to ensure reliability:

  • Framework: We use pytest for all tests
  • Coverage: Aim for high test coverage on new features
  • Run Tests: pytest or poetry run pytest

📦 Development Environment

  • Python Versions: We support Python 3.8+ (see pyproject.toml for specifics)
  • Dependency Management: Poetry for consistent environments
  • Virtual Environment: Poetry automatically creates and manages virtual environments

🤝 Contributing Process

  1. Fork & Clone: Fork the repository and clone your fork
  2. Branch: Create a feature branch with a descriptive name
  3. Develop: Make your changes following our code style guidelines
  4. Test: Ensure all tests pass and add new tests for new features
  5. Commit: Use conventional commit format for clear history
  6. Push & PR: Push your branch and create a Pull Request
  7. Review: Address any feedback from code reviews
  8. Merge: Once approved, your PR will be merged

Thank you for contributing to the Photoshop Python API project! 🎉

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

photoshop_python_api-0.24.2.tar.gz (56.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

photoshop_python_api-0.24.2-py3-none-any.whl (71.7 kB view details)

Uploaded Python 3

File details

Details for the file photoshop_python_api-0.24.2.tar.gz.

File metadata

  • Download URL: photoshop_python_api-0.24.2.tar.gz
  • Upload date:
  • Size: 56.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for photoshop_python_api-0.24.2.tar.gz
Algorithm Hash digest
SHA256 c8a68fa7dcf746602db143a789fc5821cac36b6dd3be12d202708987691b6c4b
MD5 b5b185b9487e6aecdc49cbc79e06527f
BLAKE2b-256 50e3cdd00c76667b814e44d563f9ee78bd06a91d669baba4cd8e758324263dfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for photoshop_python_api-0.24.2.tar.gz:

Publisher: python-publish.yml on loonghao/photoshop-python-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file photoshop_python_api-0.24.2-py3-none-any.whl.

File metadata

File hashes

Hashes for photoshop_python_api-0.24.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d3d37010b033fa8ccc185cf40262ff900899488d4fc5a5bdce6de8d3e077570
MD5 4a90c4aaf09d12f3ffc3e3291c2c2173
BLAKE2b-256 dbdbe27ad528af125c0c686961d22734256172475602431872769611c9496bd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for photoshop_python_api-0.24.2-py3-none-any.whl:

Publisher: python-publish.yml on loonghao/photoshop-python-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.24.2 This release

2 files

0.24.1

2 files

0.24.0

2 files

0.23.0

2 files

0.22.10

2 files

0.22.9

2 files

0.22.8

2 files

0.22.7

2 files

0.22.4

2 files

0.22.3

2 files

0.22.2

2 files

0.22.1

2 files

0.22.0

2 files

0.21.10

2 files

0.21.9

2 files

0.21.8

2 files

0.21.7

2 files

0.21.6

2 files

0.21.5

2 files

0.21.4

2 files

0.21.3

2 files

0.21.2

2 files

0.21.1

2 files

0.21.0

2 files

0.20.1

2 files

0.20.0

2 files

0.19.7

2 files

0.19.6

2 files

0.19.5

2 files

0.19.4

2 files

0.19.3

2 files

0.19.2

2 files

0.19.1

2 files

0.19.0

2 files

0.18.1

2 files

0.18.0

2 files

0.17.7

2 files

0.17.6

2 files

0.17.5

2 files

0.17.1

2 files

0.17.0

2 files

0.16.3

2 files

0.16.2

2 files

0.16.1

2 files

0.16.0

2 files

0.15.2

2 files

0.15.1

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.1

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page