• Stars
    star
    456
  • Rank 95,326 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python API for Photoshop.

logo

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

All Contributors

Python API for Photoshop.

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

πŸ›

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

More Repositories

1

maya_umbrella

A better Autodesk Maya antivirus tool detects and removes malicious.
Mathematica
59
star
2

3dsmax_shelves

A custom script shelves for 3ds max.
Python
11
star
3

rez-tools

A suite tool command line for rez.
Python
5
star
4

photoshop_python_integration

Python Interpreter for Photoshop integration
4
star
5

docker-compose-svn-server

Docker compose of SVN server
Shell
4
star
6

magicMenu

Simple generated menu from Maya, nuke, Houdini, Max
Python
3
star
7

photoshop-python-interpreter

Python Interpreter for Photoshop
Starlark
3
star
8

portable_rez

A portable rez
Starlark
3
star
9

nukescripts_builder

Build a Nuke scripts from a template.
Python
2
star
10

entity_addict

An extended version of addict.
Python
2
star
11

ftrack_api_wrapper

ftrack api wrapper.
Python
2
star
12

rez-pre-commit

Use a unified global configuration to use pre-commit, hooks are run through rez env.
2
star
13

webhook_bridge

Bridge Webhook into your tool or internal integration.
Python
2
star
14

vexcle

VEXCLE is a standalone program written using the FBS framework that can help us analyze the resolution, thumbnail, and other information from the video and output it to an excel file
Python
1
star
15

deliverer

1
star
16

docker-git2svn

The tool is used to synchronize the code above git to the trunk of SVN.
1
star
17

nuke_to_archive

Nuke archive tool.
Python
1
star
18

manifest

DCC manifest
1
star
19

loonghao

This my personal Github profile repo.
1
star
20

hugo-blog-theme

Jupyter Notebook
1
star
21

3dsmax-time-slider

A custom time slider for 3dsmax is good for using make animation.
1
star
22

Yuki

Analyze all videos in the drag and drop folder, export thumbnails and export to Excel file.
Roff
1
star