前回作ったダイアログウィンドウのボタンやリストのGUIパーツは、今の段階では押しも引いても何も反応しない只の飾りです。今回は、今はまだ只の飾り状態になってるGUIパーツを意味のあるモノにしていこうと思います。
前回の記事:
⇒[photoshop]javascriptでPhotoshopのダイアログウィンドウを表示
ボタンを押したら実行される機能
「[実行]ボタンを押すと、開いてる画像にフィルターがかかる」
これが組み込もうとしてる機能です。
そして2つ選択肢を入れようと思います。
- [実行]ボタンを押す前にラジオボタンで、複製を実行してその複製した画像にフィルターをかけるのか、もしくは、複製しない、最初から開いている画像にフィルターをかけるのか。
- 2種類のフィルターがドロップダウンリストにある、そのどちらかを選んでから[実行]ボタンを押すと、ラジオボタンで選択された画像ドキュメント、複製画像もしくは元々開かれてる画像に、選ばれたフィルターがかかる。
他には、[実行][キャンセル]ボタンを押すとウィンドウが閉じる。
あともう一つ、ウィンドウが立ち上がると、既に開いているフィルターをかける対象の画像ドキュメントのファイル名をエディットテキストの窓に表示する。
javascriptで実行部分を付け足す
var activeDocument_name = activeDocument.name;//アクティブになっているドキュメントの名前を取得 var gUIWindow = new Window('dialog','テストウィンドウ'); gUIWindow.bounds = [200,100,580,280]; gUIWindow.activeDocPnl = gUIWindow.add("panel",[10,5,370,90],"アクティブドキュメント"); gUIWindow.activeDocPnl .editText = gUIWindow.activeDocPnl .add("edittext",[10,15,345,33], activeDocument_name); gUIWindow.activeDocPnl .editText.enabled = false gUIWindow.activeDocPnl .radiorBtn1 = gUIWindow.activeDocPnl .add("radiobutton",[10,40,200,58], "オリジナル"); gUIWindow.activeDocPnl .radiorBtn2 = gUIWindow.activeDocPnl .add("radiobutton",[10,55,200,75], "複製"); gUIWindow.activeDocPnl .radiorBtn1.value = true; gUIWindow.dList = gUIWindow.add("dropdownlist",[15,110,365,130],["ぼかし(ガウス)20","ダスト&スクラッチ20,10"]); gUIWindow.dList.selection = 0; gUIWindow.filterPnl = gUIWindow.add("panel",[10,90,370,140],"フィルターの処理"); gUIWindow.okBtn = gUIWindow.add("button",[80,145,175,170], "実行"); gUIWindow.cancelBtn = gUIWindow.add("button",[190,145,285,170], "キャンセル"); gUIWindow.okBtn.onClick= function() { if(gUIWindow.activeDocPnl.radiorBtn2.value) { activeDocument.duplicate(); } else{; } if(0 == gUIWindow.dList.selection) { activeDocument.activeLayer.applyGaussianBlur(20.0); //ガウス } else if(1 == gUIWindow.dList.selection) { activeDocument.activeLayer.applyDustAndScratches(20,10); //ダスト&スクラッチ } else{;} gUIWindow.close(); } gUIWindow.cancelBtn.onClick = function() { gUIWindow.close(); } gUIWindow.show();
付け足した部分の説明:
GUIの部分以外の説明をします。
var activeDocument_name = activeDocument.name;
既に開かれている一番手前の画像の名前を取得します。
gUIWindow.activeDocPnl .editText = gUIWindow.activeDocPnl .add(“edittext”,[10,15,345,33], activeDocument_name);
取得した画像の名前 activeDocument_name がエディットテキストの窓に表示されるようにする。
gUIWindow.okBtn.onClick= function()
実行ボタンが押された場合
if(gUIWindow.activeDocPnl.radiorBtn2.value)
ラジオボタンの2番目がチェック。
チェックされていれば複製する。
activeDocument.duplicate();
複製する
if(0 == gUIWindow.dList.selection)
ドロップダウンリストの0番の項目が選ばれているか否か
activeDocument.activeLayer.applyGaussianBlur(20.0);
フィルタ ぼかし(ガウス) を半径20.0で実行
else if(1 == gUIWindow.dList.selection)
ドロップダウンリストの1番の項目が選ばれているか否か
activeDocument.activeLayer.applyDustAndScratches(20,10);
フィルタ ダスト&スクラッチ 半径と閾値を20と10にして実行
gUIWindow.close();
ダイアログウィンドウを閉じる
gUIWindow.cancelBtn.onClick = ()
キャンセルボタンが押された場合
実行:
複製しないで ぼかし(ガウス)を実行

複製して ダスト&スクラッチ を実行
まとめ
これだけです。
何かしら有益な情報であればと思います。
![]() |
|
![]() |
|
![]() |
|
![]() |
|
BTOパソコンの【FRONTIER】
3DCG/動画編集/そしてゲームプレイにも、高性能PCがお得な価格で購入できます
ウィンターセール\アウトレット・大特価・掘り出し物がズラリ!!/2月10日(水)15時まで
■第10世代 intel Core i7-10700KF + NVIDIA RTX 3070 モデルが159,800円!!
■第10世代 intel Core i7-10700F + NVIDIA GTX 1660 モデルが99,800円!!
他 お買い得PCが沢山!全て台数限定なので売り切れる前に是非
▶最新GPUも格安構成も自由に選べる!パソコン買うならBTOの【FRONTIER】
【デジハリONLINEの 基礎動画 + AdobeCC一年ライセンス のお得プラン】
デジタルハリウッドのオンラインCGスクール「デジハリONLINE」が提供する、60時間の基礎動画とAdobe creative cloudの一年版ライセンスがパッケージされた、お得な講座プラン
「Adobeマスター講座」が36,346円(税別)
PhotoshopやIllustratorなどAdobe製品を超お得な価格で利用できてコスパ最強。

▶︎基礎動画教材付きAdobe Creative Cloudを年額36,346円(税別)のお得な価格で使用する方法

![]() |
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|