GIMP 2.99 (将来の来るべき GIMP 3)では ... 動きません!。
其処で、手直し しました。
GIMP 2.99.6 で動く事を確認しています。
GIMP Script-Fu (5) レイヤー移動を座標値で (GIMP 2.6 用) 改
此のスクリプトは 私に取って 記念すべき 公開 第1号 のもの。
でも、
GIMP 2.99 に、そのまま、持ち込むと ... 。
メニューにすら現れ無く、使えませぬ!。
GIMP Script-Fu(14) GIMP 3.0 が来る前にやらなければいけない事 追補 で書いた通り、
手を入れて、 初めて、 延命! が可能になります。 ;)
GIMP 3 時代に突入しても動いてくれ!、と願いつつ。
まぁ、 一応、 Code 載せて置きますか ... 。
以下のページからファイルとして入手も可能です。 無断でのリンクの掲載・転載はお止め下さい。
https://shiroyuki-mot-presents.blogspot.com/2021/08/download-sfu-shiro-layer-shift.html
スクリプト名: Shiro_Layer_Shift.scm
登録関数名: script-fu-shiro-layer-shift
;Scheme for GIMP 2.99.6 +
;関数(関数名・引数・処理)
(define (script-fu-shiro-layer-shift img drawable x y type)
(gimp-image-undo-group-start img)
(let ((offsetsX 0) (offsetsY 0))
(set! offsetsX (car (gimp-drawable-get-offsets drawable)))
(set! offsetsY (cadr (gimp-drawable-get-offsets drawable)))
(if (= type 0)
(gimp-layer-set-offsets drawable (+ offsetsX x) (+ offsetsY y))
(gimp-layer-set-offsets drawable x y)
)
(gimp-displays-flush)
(gimp-image-undo-group-end img)
))
;登録
(script-fu-register
_"script-fu-shiro-layer-shift" ;func name
_"レイヤー移動 (Shiro版) UnDo:Ctrl+Z" ;menu label
_"レイヤーを指定した座標に移動させます" ;description
;_"Move Layer by Value" ;menu label (en)
;_"Move layer by value (relative/absolute)" ;description (en)
_"ShiroYuki_Mot" ;Original scm by"Go" ;author
_"ShiroYuki_Mot" ;Original scm by"Go" ;copyright notice
_"2021/08/07" ;Original scm in 2006/10" ;date created
_"*" ;image type on the script1:04 2021/08/09
SF-IMAGE _"Image" 0
SF-DRAWABLE _"Drawable" 0
SF-ADJUSTMENT _"X (横座標) " '(0 -8000 8000 1 100 0 1)
SF-ADJUSTMENT _"Y (縦座標) " '(0 -8000 8000 1 100 0 1)
SF-OPTION _"位置 (相対/絶対) " '(_"相対値" _"絶対値")
;SF-ADJUSTMENT _"X (Horizontal) " '(0 -8000 8000 1 100 0 1)
;SF-ADJUSTMENT _"Y (Vertical) " '(0 -8000 8000 1 100 0 1)
;SF-OPTION _"Coordinates " '(_"Relative Value" _"Absolute Value"))
)
(script-fu-menu-register "script-fu-shiro-layer-shift"
"<Image>/Layer")
;Notice for Migration to GIMP 3 API
; register name/label/desc. start with _"..."
; proc gimp-drawable-offsets > gimp-drawable-get-offsets
参考迄。
関数の代替えチェックって、結構、大変かも、です。
今ですら、 205 項目ありますから。
ミスを防ぐ為には、機械的に、総舐め で、チェックさせるのが、一番。
なので、 暫定的な プログラム (.Netframework VB.net 将来 C# に移行予定) を書いて、文字列置換しています。
登録絡みの文字列冒頭へ "_" 挿入も プログラム で行っています。
未だ、不完全ですけれど ... 動いてはいます。
自分で書いたものが対象なので、 OK ですが、
書き手の癖や指向で Code では ばらつき が大きいので、使える汎用のもの を書くのは至難かも。
自分のものが対象なので、一応、役に立ってはくれていますが ... 。
また、此のケースでは登場しませんが、
Enum 名(数値で扱う処を名前で呼び出す様にした仕組み)の場合は、
GIMP の機能の刷新や推移と絡んでいるので、単純に 置換 と言う訳には行きません。
Procedure Browser で確認の上、書き換えて、更に、実行結果を見て 考察 が必要になるものが多いと思います。
端折って書いて仕舞えば、自動変換等では対応出来無いのだろう、と思っています。
0 件のコメント:
コメントを投稿