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_pixmappixmap = Gtk::Pixmap.new(pixd, maskd)pixmap.showvbox.pack_start(pixmap, true, true, 0)Ruby/Gtk スナップショットの配布ファイル中の sample/gdkimlib 以下に、 前出の sample1.rb 以外にも以下の各種サンプルプログラムがあります。