マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

Rubyで画像処理

Rubyで画像を読み込むためにはPureImageというのを使えばいいらしい。ダウンロードはhttp://cappuccino.jp/keisuken/からしてきて、ダウンロードしたファイルに含まれてるpureimage.rbを/usr/lib/ruby/site_ruby/1.8にコピーして準備完了。読み込めるのはPNGのみらしい。で、さっそくpureimageを使って、モノクロ画像を作成するプログラムを作ってみた。

require 'pureimage'

png = PureImage::PNGIO.new
src_image = png.load('kamo.png')
dst_image = PureImage::Image.new(src_image.width, src_image.height, 0xffffffff)

for y in 0..src_image.height
    for x in 0..src_image.width
        pixel = src_image.get(x, y)
        r = pixel[0]
        g = pixel[1]
        b = pixel[2]
        mono = (0.299 * r + 0.587 * g + 0.114 * b).to_i()

        dst_image.set(x, y, [mono, mono, mono, pixel[3]])
    end
end

png.save(dst_image, 'mono_kamo.png')

実行結果
カモを撮ったピンボケ画像をモノクロ化してみた