Skip to main content
Participating Frequently
February 19, 2023
解決済み

【ExtendScript】「自動選択ツール」の「被写体を選択」/「選択範囲を反転」/「選択範囲の削除」

  • February 19, 2023
  • 返信数 1.
  • 851 ビュー

Photoshop での ExtendScript の初心者になります。

 

以下のワークフロー (JPEG 画像からの人物の切り抜き) を自動化したいと考えています。

  1. JPEG 画像を Photoshop で開く
  2. 自動選択ツールの「被写体を選択」を実行し、人物を自動的に選択させる
  3. 選択範囲を反転する (次ステップで人物以外の背景を削除するため)
  4. 選択範囲を削除する
  5. 別名でファイルを保存する

 

1. / 5. は、調べてみた限り実現できそうなのですが、他の 2.~4. が不明です。

どなたかご教授いただけませんでしょうか。

もしくは、別の手順で ExtendScript で実現できるのであれば、その方法でも構いません。

このトピックへの返信は締め切られました。
解決に役立った回答

そういうアクションを作っても良いような気はしますが、スクリプトで処理したいんですよね。

なので、2.3.4.だけ。スクリプトは下記の“ScriptingListener プラグイン”で出力しました。

単純に各処理を並べただけです。

実際には、レイヤーが背景だった場合とか他の種類のレイヤーだった場合とかの処理も必要かもしれません。

 

//被写体を選択
var desc = new ActionDescriptor();
desc.putBoolean(stringIDToTypeID("sampleAllLayers"), false);
executeAction(stringIDToTypeID("autoCutout"), desc, DialogModes.NO);

//選択範囲を反転
executeAction(stringIDToTypeID("inverse"), undefined, DialogModes.NO);

//選択範囲を削除
executeAction(stringIDToTypeID("delete"), undefined, DialogModes.NO);

 

ScriptingListener プラグイン

https://helpx.adobe.com/jp/photoshop/kb/downloadable-plugins-and-content.html

https://www.cg-method.com/photoshop-scripting-listener/

返信数 1

解決!
February 19, 2023

そういうアクションを作っても良いような気はしますが、スクリプトで処理したいんですよね。

なので、2.3.4.だけ。スクリプトは下記の“ScriptingListener プラグイン”で出力しました。

単純に各処理を並べただけです。

実際には、レイヤーが背景だった場合とか他の種類のレイヤーだった場合とかの処理も必要かもしれません。

 

//被写体を選択
var desc = new ActionDescriptor();
desc.putBoolean(stringIDToTypeID("sampleAllLayers"), false);
executeAction(stringIDToTypeID("autoCutout"), desc, DialogModes.NO);

//選択範囲を反転
executeAction(stringIDToTypeID("inverse"), undefined, DialogModes.NO);

//選択範囲を削除
executeAction(stringIDToTypeID("delete"), undefined, DialogModes.NO);

 

ScriptingListener プラグイン

https://helpx.adobe.com/jp/photoshop/kb/downloadable-plugins-and-content.html

https://www.cg-method.com/photoshop-scripting-listener/

Stosh-m作成者
Participating Frequently
February 26, 2023

(返信おそくなり申し訳ございません)

 

いただいたスクリプトで、期待通りの動作をしました。ありがとうございます。

 

ScriptingListener というプラグイン、便利ですね。早速試してみます。