GIMP 本体や API も変わって来ていますので、
此処で、改めて、投稿して置きましょう。
Script-Fu v3 の 雛形 です。
此の投稿は、既に、GIMP Script-Fu の経験がある方が対象です。
ある程度は書ける方が、新しい Script-Fu v3 で書く事を前提とします。
なので、初心者の方は、
別途、Internet 上にある 情報を検索の上、ご覧下さい。
また、現在、GIMP は RC (Release Candidate) ですので、
正式公開後に、此方の雛形も、訂正があるかも知れません。
其の辺りを、汲み取って戴いて、ご覧下さい。
さて、
GIMP 2 迄は、Script-Fu では、単独 Layer が基本的な対象でした。
複数を扱うには、
移動等では、GUI で Link を設定し、複数を同等に扱う事が可能でしたね。
しかし、GIMP 3 になると、
Link は 廃止 され、
Multi Select 機能が実装され、
此れに取って代わっています。
なので、
以下の雛形は 複数 Layers 対象のもの を掲載します。
しかし、
実際に書いて見ると分かりますが、
複数を扱うのは 容易 ではありません!。
相応の プログラミング スキル が要求される と思って下さい。
もし、挫折したなら、
単独 Layer を対象とするもの で書きましょう。
詳細は 後述 しましょう。
さて、 雛形 。
#!/usr/bin/env gimp-script-fu-interpreter-3.0
;!# Close comment started on first line.
; v2>v3
; TRUE => #t FALSE => #f
; Use script-fu-register-filter
; Now, drawables is a vector #(...)
;Scheme for GIMP 3.0.0-RC1 +
(define (<<prg-name>>
<<image>>
<<drawables>>
<<arg1>>
<<arg2>>
<<...>>
)
(script-fu-use-v3)
(gimp-image-undo-group-start image)
(let* (
(<<variable>> <<value>>)
)
<<main-routine ...>>
)
(gimp-displays-flush)
(gimp-image-undo-group-end image)
)
(script-fu-register-filter
"<<prg-name>>" ;func name
_"<<text>>" ;menu label
_"<<text2>>" ;description
"<<your-name>>" ;author
"<<your-name>>" ;copyright notice
"<<date>>" ;date created
"*" ;image type on the script
SF-ONE-OR-MORE-DRAWABLE ; v3 >>> additional argument
;SF-IMAGE "Image" 0 ;Commment out for v3
;SF-DRAWABLE "Drawable" 0 ;Commment out for v3
<<SF-???>> "<<arg1-text>>" <<???>>
<<SF-???>> "<<arg2-text>>" <<???>>
)
(script-fu-menu-register "<<prg-name>>"
"<Image>/<<menu-position>>")
もし、
単独 Layer が対象の場合には、
SF-ONE-OR-MORE-DRAWABLE ; v3 >>> additional argument
を
SF-ONE-DRAWABLE ; v3 >>> additional argument
に書き換えて下さい。
実際には、
渡される drawables の個数を照査し、必要なら エラー処理 です。
Main Routine の前に、
Logic Checks と Escape が必要になります。
上述の件、此処で、細かくは触れません。
0 件のコメント:
コメントを投稿