GIMPの機能で選択範囲を縁取るように範囲選択する機能があるのですが、0.「自由選択」→1.「選択範囲の拡大」→2.「縁取り選択」→3.「選択範囲の縮小」→何らかの処理(選択範囲の塗りつぶしなど)という手順を踏む必要があります。
こういった作業はショートカットキーを指に覚えこませると作業スピードが上がるのですが、その手順をスクリプト化し自動実行させるとさらに作業スピードが向上します。
ユーザーのスクリプトディレクトリ
%Userprofile%\AppData\Roaming\GIMP\2.10\scripts
自作スクリプトの置く場所
スクリプト
ファイル名:grow-border-select.scm
;
; 選択範囲を拡大、縁取り選択、縮小するスクリプト
;
(define (script-fu-grow-border-select img layer)
; Undo記録開始
(gimp-undo-push-group-start img)
; 1.選択範囲を1px拡大
(gimp-selection-grow img 1)
; 2.縁取り選択5px
(gimp-selection-border img 5)
; 3.選択範囲を1px縮小
(gimp-selection-shrink img 1)
; Undo記録開始
(gimp-undo-push-group-end img)
)
(script-fu-register "script-fu-grow-border-select"
"<Image>/Filters/My/拡大縁取り選択縮..."
"選択範囲を拡大、縁取り選択、縮小します。"
"Maywork"
"Copyright 2020, Maywork"
"02/10/2020"
"RGB* GRAY*"
SF-IMAGE "Input Image" 0
SF-DRAWABLE "Input Layer" 0
)
define
で関数の宣言をした後は、目的の処理をする関数を並べています。
script-fu-register
でスクリプトを登録することで、他のフィルターと同様にメニューからスクリプトを実行できるようになります。呼び出す関数名、メニューの表示名や場所、作者、コピーライトなどを適当にセットします。RGB*
GRAY*
は画像がRGB(カラー)がグレイスケールの場合、メニュー項目が有効化されます。SF-IMAGEとSF-DRAWABLEはscript-fu-grow-border-select
のimg
とlayer
に対応します。現在の画像とレイヤーを引数に出来ますので、フィルターを作る場合必須の引数かもしれません。
今回はオプションとなる数値を全てハードコーディングしていますが、実行時に数値を選ぶようにする場合はscript-fu-register
内にSF-VALUEやSF-STRINGなどを追加すると実行時ダイアログが表示されます。逆に既存のフィルターの、その部分をつぶして値をハードコーディングするとオプション選択のダイアログをショートカットしたフィルターを作ることも可能です。
実行
まず範囲選択します。今回は楕円選択をしていますが、別の選択方法でも可.
次に作成したスクリプトを実行。メニュー「フィルター(R)」→「My」→「拡大縁取り選択縮」
縁取り選択されました。
試しに「Ctrl」+「,」で前景色で塗りつぶしてみます。
ショートカットキーの割り当て
フィルターとして登録したスクリプトはメニューから実行できますが、フィルターにショートカットキーを割り当てることが出来ます。
メニュー「編集(E)」→「設定(P)」
「ユーザーインターフェイス」→「ショートカットの設定(K)…」
ゲーミングマウスのボタンに割り当て
設定方法はマウスによって異なりますが、私が愛用している比較的リーズナブルなゲーミングマウスLogicool G300sも割り当てることが出来ました。
ちなみにG300sは2代目なのですが、このマウスは拡張ボタンがあまり主張せず普通のマウスと同様な感覚で操作できます。
その割に設定可能な拡張ボタンは4個~もあるのでなかなかの拡張性です。
ここまで設定すると、マウスで範囲選択しボタンをクリックすることでフィルターを実行することが出来ます。
最後に
GIMP内での繰り返し作業に苦痛を感じるようになったらScript-Fuに手を出してみるのも面白いかもしれません。
コメント