イメージの扱い(Imlib)

Imlib は、イメージを取り扱うための汎用ライブラリです。 Imlib を用いることにより、いろいろな形式の画像データのロード、 レンダリング、画像の拡大/縮小、ガンマ補正などができます。 Imlib は Gtk+ の一部ではありませんが、 GNOME で使われていることもあり、よくGtk+ と組み合わせて利用されています。

Ruby/Gtk 0.21 以降では Imlib がインストールされていればその機能が使えるようになっています。


■ 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

プログラムの説明


■ 他のサンプルプログラム

Ruby/Gtk スナップショットの配布ファイル中の sample/gdkimlib 以下に、 前出の sample1.rb 以外にも以下の各種サンプルプログラムがあります。

次へ
[TOP] [ML topics] [GTK] [Today's goo analyzer]
Written by akaishi@ruby.freak.ne.jp