2018年4月25日水曜日

GIMP Script-Py (1) 雛形

GIMP Script-Py こと Python-Fu での 雛形の作成 と 記述の進め方です。
他の方の Script に手を入れる場合は除外して、
1から書き進める場合には、 Script の雛形があると便利です。
是非、ご自分用に 変更の上、保存されるのが、 お勧め です。


GIMP の Python Fu 。


こんな雛形は如何でしょうか。  *2.         (コメント 行末のものはエディタで空白数を調整して下さい)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from gimpfu import *

# Procedure 関数(関数名・引数・処理)
def plugin_main(img, layer0):

  # Main Routine
  ## Write here your code...


# Registration 登録
register(
        "python_fu_test_script_format",        # func name
        "Script-Py 雛形",                      # description
        "Script-Py 雛形 help",                 # help
        "ShiroYuki_Mot",                       # author
        "(c) 2018- ShiroYuki_Mot",             # copyright notice
        "2018/05/01",                          # date created
        "Script-Format",                       # menu name
        "",                                    # image types on the script
                                               # params
        [],                                  
        [],                                    # results
        plugin_main,                           # function
        menu="<Image>/Script-Py/Test/"         # menu path
#            "<Image>/Script-Py/Test/Script-Format"       Ref. menu full path and name
        )
main()


さて、 register に並ぶパラメータは以下の 11 項目 です。  基本的には。

    name
    blurb(description)
    help
    author
    copyright
    date
    menu path
    image types
    params
    results
    function

でも、 応用時を考慮して、12 項目の 構成 を雛形にしました。 *2.


勿論、履歴をソースコードに埋めたり、特記事項をコメントで追加したり と加工して下さい。

コメントは、
文頭 若しくは 文中の # から 文末まで、
或いは、
複数行を、前後共に、 ''' 若しくは """ の1行で囲んだ部分です。

そして、
ソースコードの中に 日本語 を使う場合には、
ソースコードの冒頭で # coding: utf-8 等の記述が必須です。
これがないと、Python は コード を正確に読み取れず、 結果として、エラーで弾かれます。
メニューにすら 現れない しかし 内容的には正しいコードと 格闘 する羽目に陥りますので、
ご留意を!。

また、 GIMP 用に書くスクリプトでしょうから、
from gimpfu import * の文は 普通は 必須となりますね。


尚、
正常動作を確保する為に、Windows 版でも、 Shebang を雛形の冒頭に記述する事をお勧めします。
Shebang は スクリプト実行を担保するもので、一般的にはこんな記述になります。
  #!/usr/bin/env python
この冒頭1行によって、Python 構築環境の差異を吸収(問題回避)出来る場合があります。 *1.


そして、これは、Script-Fu と共通の お決り !。
改行コードは LF のみで、CRLF ではありません。  俗に言う UTF-8N BOM なし ですね。
Windows 標準添付の メモ帳 notepad.exe で済まそう 等とは考えず、
専用の テキストエディタ をご用意下さい。
             私は Microsoft さま の Visual Studio Code で書いています。.
             https://www.microsoft.com/ja-jp/dev/products/code-vs.aspx URL:for Japanese.
             Script-Fu 用に書いた昔の投稿(参考用):.
             GIMP Script 用 Editor として Visual Studio Code を


序に。
雛形 からは外れるテーマになりますが ... 。.  これで ひとつの投稿にする迄では無いと思い ... 此処に書きますね。.

実際に、この雛形で書いて行くとします。
Script を条件分岐で途中から抜け出す書き方は 止めて置いた方 が無難です。
この gimp.quit() と書いて 逃げる手 は、
GIMP 2.8.22 では有効ですが、GIMP 2.10.0-RC1 や -RC2 では 不正! (?) だよと叱られて仕舞います。 -RC2 OK?。
不安定になりますので、 Script は 最初から最後迄 実行される ものとして書くのが正解 の様です。
はい。  最終行迄 届く様に 条件分岐させる がコツの様です。.

所謂、複雑怪奇なものを書いてあると、GIMP の Version の進化時点で 苦労 しそうですので、
程々に。  と言う処でしょうか。
基本に忠実且つシンプルに 記述 が基本ですね、 やはり。.



[2018/07/10] Shebang を雛形の冒頭に追記。 Shebang : Hash(#) と Bang(!) の HashBang の省略形。.
[2018/07/13] Shebang に関して追記。 *1.
[2018/09/25] 雛形コピペで問題が生じるケースがあり、それに対応(雛形更新) *2.
[2019/01/24] Code 訂正 最後の main() 直前 改行落ちを修正 

0 件のコメント:

コメントを投稿