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を再起動してみましょう。

どうです? 簡単でしょ?

Last modified:2006/08/15 09:34:07
Keyword(s):
References:[Gimp-Ruby]