PythonスクリプトをPhotoshopのメニューから実行する方法[Windows限定]

py_ps_menustart_topimage

「PythonでPhotoshopのスクリプトを書いたけど、Photoshopのメニューから実行出来ないのは使いにくい」

Photoshopのスクリプトは通常

メニューから ファイル > スクリプト > スクリプトファイル名

で実行させます。

スクリプトの項目に並ぶスクリプトファイル名は、Photoshopのスクリプトフォルダ

C:\Program Files\Adobe\Adobe Photoshop XXXX\Presets\Scripts

にスクリプトファイル(.js又は.jsx)を置く事によって表示され、そして実行する事が出来ます。

ですがこの場所にPythonファイル(.py)を置いても表示されません、もし表示する事が出来てもPythonの起動ディレクトリ(python.exeがある場所)では無いので、当然実行できません。

今回はこの問題を解決するメニューからPythonを実行する方法をWindows限定ですが紹介したいと思います。


Pythonファイル .pyw を作る


py_photoshop_script.pyw  の名前でPythonのファイルを用意しました。
Photoshopで以下の操作が実行されるスクリプトです。

新規ファイル作成

フィルター 雲模様1

フィルター つまむ(80)

フィルター 明るさの最大値(10)

#!/usr/bin/env python


import win32com.client


psCom = win32com.client.Dispatch('PhotoShop.Application')

psCom.Documents.Add(512,512)

psCom.ActiveDocument.ActiveLayer.ApplyClouds()

psCom.ActiveDocument.ActiveLayer.ApplyPinch(80)

psCom.ActiveDocument.ActiveLayer.ApplyMaximum (10)

簡単に解説

psCom = win32com.client.Dispatch('PhotoShop.Application')

COMでPhotoshopにアクセスします。
COMコンポーネントを使ったPhotoshopにアクセスする説明は以前書いたので、記事をまだ読んでない方は是非よんでみてください。

psCom.Documents.Add(512,512)

新規ファイル作成 H:512 W:512

psCom.ActiveDocument.ActiveLayer.ApplyClouds()

フィルター 雲模様1

psCom.ActiveDocument.ActiveLayer.ApplyPinch(80)

フィルター つまむ(80)

psCom.ActiveDocument.ActiveLayer.ApplyMaximum (10)

フィルター 明るさの最大値(10)

大事なことは、拡張子を.py ではなく.pyw にすることです。

.pywとは


拡張子.pywはWindows限定で使えます。

スクリプトファイルを保存する時に拡張子[.pyw]を選んで保存。
もしくは、拡張子[.py]で保存したあとでファイルの拡張子を[.py]から[.pyw]に書き換えても良いです。

Pythonを起動するのに通常は python.exeを使っていますが、拡張子を.pywにするとpythonw.exeで起動します。

pythonw.exeで起動するとコマンドプロンプトが表示されないのでスッキリ

Pythonのおまじない


#!/usr/bin/env python を先頭に入れるのを忘れずに。
これが無いと何で実行するのか分からずエラーになってしまいます。

Photoshopのスクリプトファイルを作る

Photoshopのスクリプトを用意します。

start_python_script.jsx

のファイル名でPhotoshopのスクリプトフォルダに保存しました。

Windows環境 Photoshop2020の場合:
C:\Program Files\Adobe\Adobe Photoshop 2020\Presets\Scripts


//start_python_script.jsx//------------

file_object = new File("C:/Python27/py_photoshop_script.pyw");
file_object.execute();

解説

file_object = new File("C:/Python27/py_photoshop_script.pyw");

Pythonファイル「py_photoshop_script.pyw」のファイルオブジェクトを取得

file_object.execute();

.execute() で実行します。

メニューから実行してみましょう


Photoshopのメニューから実行してみましょう。

メニュー > スクリプト > start_python_script

py_ps_menustart_gifanim

PhotoshopのメニューからPythonのスクリプトを実行できました。


まとめ

  • Pythonファイルの拡張子を .pyw にする
  • Pythonファイルに #!/usr/bin/env python を書くのを忘れない。
  • Photoshopのスクリプトファイルで.execute() を使う。


以上の事をすれば、Pythonで書いたPhotoshopのスクリプトでも
Photoshopのメニューから実行出来ます。

PhotoshopのスクリプトをPythonで書くことを検討してみてはいかがでしょうか。


Twitter Facebook Pocket LINE はてブ

おすすめの関連記事:

PhotoshopのスクリプトをPythonで書く方法の記事です



Adobe公式のプラグインでPhotoShopのスクリプトを書く方法の紹介です


コチラの記事も読まれています
gui_photoshop_topimage
前回作ったダイアログウィンドウのボタンや
maya_python_getfilesize_topimage
ゲーム開発ではデータの容量をとても気しま
python_comment_out_topimage
皆さんの書いたプログラムコードは他の人に
maya_gimp_xpm_topimage
現在MAYAのアイコン画像ファイルは主に
san_francisco_burgers_topimage
サンフランシスコ観光のグルメ話で、真っ先
あわせてよく読まれている記事
タグ: , , ,