SAKAI Masahiro - Gimp-Ruby::Ruby-Fu Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
= 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を再起動してみましょう。
どうです?
簡単でしょ?
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を再起動してみましょう。
どうです?
簡単でしょ?