さくらインターネットサーバー上で画像処理を行う (Ruby 使用)

さくらインターネットのレンタルサーバー 上で動作する Ruby プログラムで画像処理を行うための方法です。

画像処理用のアプリケーションは、元々さくらインターネットのサーバーにインストールされている ImageMagick を使用することにします。 Ruby プログラムから ImageMagick を使用するためのライブラリは RMagick を使用します。

Ruby の環境

さくらインターネットレンタルサーバーには元々 Ruby 1.8 系がインストールされていますが、私は Ruby 1.9 系が使いたかったのでホームディレクトリに Ruby 1.9 をインストールしています。 インストールの方法は 「さくらインターネットサーバに Ruby 1.9 をインストール」 という記事に書いていますのでそちらをご覧ください。 バージョンは以下のとおりです。

インストールした ruby や gem には PATH が通っているものとします。

RMagick のインストール

さくらインターネットサーバーには ImageMagick は元々インストールされていますが、RMagick はインストールされていないのでまずはインストールします。 インストールには RubyGems を使用しました。

さくらインターネットのサーバーに SSH でログインし、下記コマンドをたたくだけでインストールされるはずです。

$ gem install rmagick

RMagick を使用して画像処理を行う

あとは、Ruby プログラム内で 'RMagick' を require して RMagick を使用するだけです。

例えば、画像をリサイズするプログラムは以下のようになります。 Shebang 行は各自適当に書き換えてください。

#! /home/username/env/bin/ruby
# -*- coding: utf-8 -*-

require 'RMagick'

# 処理対象の画像ファイル名
src_name = 'XXX.png'
# 出力先画像ファイル名
out_name = 'YYY.png'

begin
# 画像の読み込み
img = Magick::ImageList.new( src_name )[0]
# 縦横比を保ったまま画像をリサイズ (はみ出した部分はカットされる)
img.resize_to_fill!( 100, 150 )
# 画像を保存
img.write( out_name )
rescue Magick::ImageMagickError => err
$stdout << '画像処理に失敗しました...' << "\n"
end

RMagick の詳しい使い方については下記をご覧ください。