Gimp-Ruby::Ruby-Fu
Ruby-Fu
Gimp-Rubyはlibgimpやlibgimpuiの機能をほぼそのまま提供しているだけでなく、 Script-Fu的なインターフェースをその上に構築しています。 このフレームワークがRuby-Fuと呼ばれています。 このフレームワークには幾つかの制限がありますが、 典型的なスクリプトの作成をかなり容易にしてくれます。
以下にRuby-Fuを使った例を示します。
#!/usr/bin/env ruby require 'gimp/fu' include Gimp # 実際に処理を行なう関数を定義します。 # パラメータと返り値は以下のregisterの呼び出しと一致している必要があります。 def ruby_fu_uni_img(size, color) img = Image.new(size, size, RGB) layer = Layer.new(img, size, size, RGB, "layer 1", 100, NORMAL_MODE) # アンドゥを無効化 img.undo_disable # レイヤを追加 img.add_layer(layer, 0) # 色を設定してレイヤを塗りつぶす gimp_palette_set_background(color) gimp_edit_fill(layer, BG_IMAGE_FILL) # 画像を表示する新しいウィンドウを作成 Display::new(img) # アンドゥを有効化 img.undo_enable img end # Ruby-Fuに関数を登録する。 # この形で登録するとトップレベルの関数が登録される。 register("ruby_fu_uni_img", # 関数名 "Creates a uniform image", # 短い説明(blurb) "Creates a uniform image", # ヘルプ "Masahiro Sakai", # 著者 "Masahiro Sakai", # 著作権情報 "2001", # 作成日時 # Gimpのメニュー中のスクリプトの場所 "<Toolbox>/Xtns/Ruby-Fu/Tutorials/Uniform image", "", # 扱うイメージのタイプ # パラメータの定義 # 型、名前、説明、デフォルト値、オプションの順番です。 [ [RF_ADJUSTMENT, "size", "Size of new image", 100], [RF_COLOR, "color", "Color of new image", Color(255, 127, 0)] ], # 返り値の定義 [ [RF_IMAGE, "image", "Result image"], ]) # mainを呼ぶのを忘れがちなので注意 main
このスクリプトはユーザから指定されたサイズの画像を作成して、 指定された色で塗りつぶします。 試しに、実行権を付けて~/.gimp-1.2/plug-ins/に放り込んで、 Gimpを再起動してみましょう。
どうです? 簡単でしょ?
Keyword(s):
References:[Gimp-Ruby]