2019年7月5日金曜日

GIMP Script-Fu(14) GIMP 3.0 が来る前にやらなければいけない事

目下、確認中なのですが、 確認が取れました!。
どうやら、GIMP 3.0 で、Script-Fu 絡みの仕様に変更が入る模様です。
ですから、来るべき日に備えて、スクリプトを直す必要に迫られました。
皆さんも、お手持ちのスクリプトを確認して見ませんか?。


実は、GNOME の GIMP バグレポートを眺めていて、今回の件に気付きました。
別に、普通に起動していてエラーが起こっているいる訳ではありません。
寧ろ、エラーの起きている方との相違を見付ける為に行った行為が、これに結び付いたのです。

それは --verbose オプション付きでの GIMP の起動です。
冗長 を表すこのオプションは、GIMP 起動時の詳細を把握出来ます。
問題があれば、メッセージが表示されるのですね。
冗長の言葉通り、長い長~い、アウトプットが出ます。

  参考用に、C: ドライブにインストールされた GIMP での verbose 付き起動のバッチを、
  文末に載せて置きます。

元々、問題解消の為では無いので、その内容を細かく見る事は無く過ごしていたのですが、
ある時、変なメッセージがある事に眼が行きました。

こんな表示です。

(C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins\script-fu\script-fu.exe) is installing procedure "script-fu-shiro-high-pass" with a full menu path "/Filters/Enhance/-Sharpen-Soften by High Pass (-Fu)" as menu label, this deprecated and will be an error in GIMP 3.0
Plug-in "script-fu.exe"

and will be an error in GIMP 3.0 とあります。
謂わば、警告! ですね。

何が変わるんだろう?。

そこで、早速、質問を挙げたのです。
https://gitlab.gnome.org/GNOME/gimp/issues/3604

GIMP Maintainer の Michael Natterer さま から ご回答 戴きました。
Dear Michael Natterer,  Thanks a lot !


対処方法は、薄々、気付いてはいました。
と言うのは、 Python で書いたものには、このメッセージは出ないからです。
Python でも、メニュー記述に2通りの書き方があったのを思い出していたからです。

私が Script-Fu を書き出した頃に、お手本としたものは、
皆、メニュー登録をひとつの定義文で書いたものでした。
でも、実際には、2通りの書き方があるのです。
その一方が、次期 GIMP 3.0 で通用しなくなる と言うのが、
このメッセージの趣旨なのでしょうね。

  正確には、既に、廃止予定のものを、ずっと、サポートし続けて来たが、
  GIMP 3.0 移行を機に、旧式の記述は 破棄する と言う事の様です 。



該当するスクリプトに対する 訂正箇所 を纏めます。


従前( GIMP 2.x では許容 GIMP 3.0 廃止予定 ) ひとつで定義

(script-fu-register
  "script-fu-test-script-format"          ;func name
  "<Image>/Script-Fu/Test/Script-Format"  ;menu label
  "Script-Fu 雛形"                        ;description
  "ShiroYuki_Mot"                         ;author
  "(c) 2015- ShiroYuki_Mot"               ;copyright notice
  "2015/01/01"                            ;date created
  ""                                      ;image type on the script
  ;パラメータ
)


将来( GIMP 2.x では許容 GIMP 3.0 でも許容 ) ふたつで定義

(script-fu-register
  "script-fu-test-script-format"          ;func name
  "Script-Format"                         ;menu label
  "Script-Fu 雛形"                        ;description
  "ShiroYuki_Mot"                         ;author
  "(c) 2019- ShiroYuki_Mot"               ;copyright notice
  "2019/07/10"                            ;date created
  ""                                      ;image type on the script
  ;パラメータ
)
(script-fu-menu-register "script-fu-test-script-format" "<Image>/Script-Fu/Test")


詰まる所、
(script-fu-register ~ と、(script-fu-menu-register ~ と、ふたつの定義が無い場合、
GIM 3.0 では、エラーになるので、
(script-fu-register ~ では メニュー表示名 のみを、
(script-fu-menu-register ~ では メニューでの場所(階層 or パス)を、
と定義を2分割します。

(script-fu-menu-register ~ の部分は以下の通りです。 *1.
(script-fu-menu-register "<function name>" "<menu path>")


きっと、今回の件に気付かずに、GIMP 3.0 を迎えていたら、
パニックになっていた事でしょう!。  将来の話ですが。  (鬼が笑うか?)

verbose オプションのお陰で、事前に、対処が可能になった訳です。
ありがたい事です。  感謝!。

幸い、時間は、まだ、有りそうですので、
ゆっくり、確実に、自分のスクリプトを直して行く心算です。



以下、参考欄。

verbose バッチ  注:日本語環境下で日本語は文字化けします。 目下、対処法は無し です。.
メモ帳 notepad.exe 等に以下の3行をコピーし、適当な名前に 拡張子 .bat を付けて下さい。
実行後、出力を メモ帳 notepad.exe 等に 文字列コピーし、
文字列検索で an error in GIMP 3.0 を探せば、登録スクリプト名を絞れます。

C:
cd "C:\Program Files\GIMP 2\bin"
gimp-2.10.exe --verbose --console-messages


gimp-2.10.exe --verbose --console-messages > C:\Users\UserA\...\GIMP_Verbose.txt
として、ファイルに落として作業するのも手です。  ファイルパスは直して下さいね。.


でも、 個人用の script folder を開いて、全てチェック(修正)した方が楽かも。
最後に、この verbose 表示で訂正漏れが無いか調べるのがお勧めかも知れません。



[2019/07/05] 構文追記 *1.

0 件のコメント:

コメントを投稿