1枚の画像をパーツごとに別レイヤーに切り出し作業用のスクリプトです。
GIMP3.0RCをインストールしてScript-Fuを少し試してみたので、よく使うスクリプトをGIMP3.0RCで動作するように修正してみました。
ファイル名:cut-new-layer.scm
;
; 選択範囲をレイヤーに切り出すスクリプト
;
(define (script-fu-cut-new-layer img layer)
; 選択範囲座標の取得
(define sb (gimp-selection-bounds img))
(define non_empty (car sb))
(define x1 (car (cdr sb)))
(define y1 (car (cdr (cdr sb))))
(define x2 (car (cdr (cdr (cdr sb)))))
(define y2 (car (cdr (cdr (cdr (cdr sb))))))
; アルファチャンネルを追加
(gimp-layer-add-alpha layer)
; レイヤーの複製
(define new_layer (car (gimp-layer-copy layer 1)))
(gimp-image-insert-layer img new_layer 0 0)
; 選択範囲外を透明で塗りつぶし
(gimp-selection-invert img)
(gimp-drawable-edit-fill new_layer 4)
; 元レイヤーの選択部分を切り抜き
(gimp-selection-invert img)
(gimp-drawable-edit-fill layer 4)
(gimp-displays-flush)
)
(script-fu-register "script-fu-cut-new-layer"
"Cut _NewLayer"
"Cut New Layer"
"Maywork"
"Copyright 2020, Maywork"
"19/11/2024"
"RGB* GRAY*"
SF-IMAGE "Input Image" 0
SF-DRAWABLE "Input Layer" 0
)
(script-fu-menu-register "script-fu-cut-new-layer"
"<Image>/Filters/My")
GIMP3.0で無くなったプロシージャ関係を削除しました。
後、透明で塗りつぶしのプロシージャをgimp-drawable-edit-fillに置き換えました。
使い方
切り出したい部分を選択した状態でフィルターを実行
選択した範囲の別レイヤーが出来上がる。
元のレイヤーは切り抜かれた状態になります。
コメント