今回は、Photoshopで選択範囲を四辺別々に拡張するスクリプトです。
標準では選択範囲の拡張は、4px拡張指定すると全体が広がってしまいます。左側だけ10px拡張したい場合には困ってしまいます。ということで、四辺別々に選択範囲を拡張、変更できるスクリプトを作成しました。
以下のスクリプトは、GUI付きでテキストボックスに数値を入力すると、その分だけ選択範囲が拡張されます。なお、Photoshopの都合上(?)ボタンを連打すると低速になったりエラーにします。
エラーがでないように処理していますが、エラー復旧と画面更新処理のため、連続してボタンをクリックすると処理に非常に時間がかかることがあります。
標準では選択範囲の拡張は、4px拡張指定すると全体が広がってしまいます。左側だけ10px拡張したい場合には困ってしまいます。ということで、四辺別々に選択範囲を拡張、変更できるスクリプトを作成しました。
以下のスクリプトは、GUI付きでテキストボックスに数値を入力すると、その分だけ選択範囲が拡張されます。なお、Photoshopの都合上(?)ボタンを連打すると低速になったりエラーにします。
エラーがでないように処理していますが、エラー復旧と画面更新処理のため、連続してボタンをクリックすると処理に非常に時間がかかることがあります。
// 選択範囲を拡張する
(function selection_range_extend(){
try{
if (activeDocument.selection.solid == false){
alert("選択範囲が四角形でないと使えません");
return;
}
}catch(e){
alert("範囲を選択してください");
return;
}
var rect = activeDocument.selection.bounds;
var x1 = parseInt(rect[0]);
var y1 = parseInt(rect[1]);
var x2 = parseInt(rect[2]);
var y2 = parseInt(rect[3]);
$.writeln("src : "+x1+","+y1+", "+x2+","+y2);
// GUI部分
var winObj = new Window("dialog", "選択範囲を拡張する", [0,0,320,200]);
var cropSize1 = winObj.add("statictext", [20, 10, 300, 25], "拡張する値を入れてください");
winObj.add("statictext", [40, 50, 60, 70], "左");
winObj.add("statictext", [140, 50, 160, 70], "上");
winObj.add("statictext", [40, 80, 60, 100], "右");
winObj.add("statictext", [140, 80, 160, 100], "下");
var x1e = winObj.add("edittext", [60, 50, 100, 70], "0");
var y1e = winObj.add("edittext", [160, 50, 200, 70], "0");
var x2e = winObj.add("edittext", [60, 80, 100, 100], "0");
var y2e = winObj.add("edittext", [160, 80, 200, 100], "0");
var btnExtend = winObj.add("button", [20, 130, 300, 155], "拡張する");
var btnEnd = winObj.add("button", [20, 160, 300, 185], "終了する");
// ボタンにイベントを割り当てる
btnExtend.onClick = function(){
// 新しい選択範囲を計算する
x1 = x1 - parseInt(x1e.text);
y1 = y1 - parseInt(y1e.text);
x2 = x2 + parseInt(x2e.text);
y2 = y2 + parseInt(y2e.text);
// 現在の選択範囲をクリアする
try{
activeDocument.selection.deselect();
app.refresh();
}catch(e){}
// 新たな選択範囲を設定する
try{
activeDocument.selection.select([[x1,y1],[x2,y1],[x2,y2],[x1,y2]]);
app.refresh();
}catch(e){}
}
// ウィンドウを閉じる
btnEnd.onClick = function(){
winObj.close();
}
winObj.center();
winObj.show();
})();
【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/
>
今年の1月に書いた本がようやく発売になりました。顛末(?)などは、次回書けたら書こうかと思ってます。
電子書籍で発売されていますが、紙版もようやく入手できるようになりました。と、この原稿を書いている時点では手元に紙版は届いていなかったりします。
iBooksでも購入して読むことができます。Kindle(iOS版も)だと検索できないというオチがあるので、電子書籍でさくさく読みたい&検索したいというのであればiBooks版がおすすめです。手元に残したい、やっぱり紙がよいという方はPOD(Print On Demand)対応なので印刷した本としても購入できます。
・ExtendScript Toolkit(ESTK)基本編
< http://www.amazon.co.jp/dp/B00JUBQKKY/
>
・ExtendScript Toolkit(ESTK)基本編(紙バージョン)
< http://www.amazon.co.jp/dp/4844396137/
>
・ExtendScript Toolkit(ESTK)基本編(iBooks)
< https://itunes.apple.com/jp/book/extendscript-toolkit-estk/id868057300
>
・4K/ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/
>
・JavaScript逆引きハンドブック
< http://www.amazon.co.jp/dp/4863541082
>
・D3.js例文辞典
< http://www.openspc2.org/reibun/D3.js/
>
・Dart例文辞典
< http://www.openspc2.org/reibun/Dart/ver1.1/
>
・Adobe CS2〜CS6,CC JavaScriptリファレンス&ライブラリ
< http://www.openspc2.org/reibun/AdobeJS/index.html
>
・Adobe JavaScriptリファレンス(検索できないのはKindleのバグらしい)
< http://www.amazon.co.jp/dp/4844395955
>
・Nexus 7(アンドロイドタブレット)使い方辞典
< http://www.openspc2.org/reibun/Android/Nexus7/
>
・クリエイター手抜きプロジェクト
< http://www.openspc2.org/projectX/
>
・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< https://www.ddc.co.jp/estore/cgi/item/start.cgi?m=DetailViewer&record_id=243
>
吉田印刷所の「印刷の泉」でも購入できるようになりました。