「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
PhotoshopのメニューからPythonのスクリプトを実行できました。
まとめ
- Pythonファイルの拡張子を .pyw にする
- Pythonファイルに #!/usr/bin/env python を書くのを忘れない。
- Photoshopのスクリプトファイルで.execute() を使う。
以上の事をすれば、Pythonで書いたPhotoshopのスクリプトでも
Photoshopのメニューから実行出来ます。
PhotoshopのスクリプトをPythonで書くことを検討してみてはいかがでしょうか。
PhotoshopのスクリプトをPythonで書く方法の記事です
|
Adobe公式のプラグインでPhotoShopのスクリプトを書く方法の紹介です
|
|
豊富なカスタマイズメニューで、あなた好みの1台が購入できます。
人気の秘密は何と言ってもコスパの高さ。
最新のCPU・GPUパーツを搭載したモデルを驚きの価格で提供。
山口県の自社工場で組み立てられ徹底した試験・検査後に出荷。
無償修理サービスもありサポート体制も安心。
コスパに徹底的にこだわる方は公式サイトへ >> 【FRONTIER】
|
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
|
|
|
|
|