Ruby/Gtk 0.21 以降では Imlib がインストールされていればその機能が使えるようになっています。
Imlib のソースは、 GNOME の各 ftp ミラーサイトの sources/imlib から入手できます。 Imlib のインストール方法は、Imlib 付属のドキュメントを参照してください。
Imlib がインストールされていれば、 Ruby/Gtk は extconf.rb 実行時に自動的に検出します。
Ruby/Gtk(0.21 以降)には、 Imlib を利用するサンプルプログラムが付いてきます。 以下の sample1.rb は、
% ruby sample1.rb 画像ファイル名
として起動すると、その画像を単に表示するというものです。 使用できる画像形式は PPM, PGM, TIFF, PNG, XPM, JPEG, EIM などいろいろありますが、詳しくは Imlib のドキュメントを参照してください。
プログラム sample1.rb:
#!/usr/local/bin/ruby require 'gtk' # # Ruby/Gtk + Imlib : view demo # if(ARGV.size != 1) print $0, " filename\n" exit end filename = ARGV.shift window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL) window.set_title(filename) window.signal_connect('destroy'){ exit } window.signal_connect('delete_event'){ exit } vbox = Gtk::VBox.new(false, 0) window.add(vbox) vbox.show im = GdkImlib::Image.new(filename) im.render(im.rgb_width, im.rgb_height) pixd, maskd = im.get_pixmap pixmap = Gtk::Pixmap.new(pixd, maskd) pixmap.show vbox.pack_start(pixmap, true, true, 0) window.show Gtk.main
プログラムの説明
im = GdkImlib::Image.new(filename)
im.render(im.rgb_width, im.rgb_height)
pixd, maskd = im.get_pixmap
pixmap = Gtk::Pixmap.new(pixd, maskd)
pixmap.show
vbox.pack_start(pixmap, true, true, 0)
Ruby/Gtk スナップショットの配布ファイル中の sample/gdkimlib 以下に、 前出の sample1.rb 以外にも以下の各種サンプルプログラムがあります。