Ruby で画像を扱う
Imlib2-Ruby を使って画像を扱ってみます。
多用な形式をサポートし読み書き等も速い Imlib2 という画像処理ライブラリがあり、 Ruby のバインディングである Imlib2-Ruby が公開されています。
Ubuntu でインストールするには apt-get を使えばいいらしい。
$ sudo apt-get install libimlib2-ruby
Mac の場合は Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成 - 昼メシ物語 を参照。
ピクセルごとグレースケールに変換する例。
require 'imlib2' img = Imlib2::Image.load("src.jpg") img.h.times do |y| img.w.times do |x| c = img.pixel(x, y) gray = (0.299 * c.r + 0.587 * c.g + 0.114 * c.b).to_i c.r = c.g = c.b = gray img.draw_pixel(x, y, c) end end img.save("dst.jpg")
このほか、ブラーやフリップなどのメソッドがあらかじめ用意されているので、すべてがすべてピクセルごと扱う必要はありません。