[Ruby] Mac で rmagick から imagemagick をつかう

Mac の ruby から imagemagick を扱います。

[markdown]
## インストール

“`prettyprinted
% ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
“`

imagemagick は homebrew でインストールしました。

> * [imagemagick で image の top から指定した座標までを除いて crop する | deadwood](https://www.d-wood.com/blog/2014/09/04_6777.html)

“`prettyprinted
% brew info imagemagick
imagemagick: stable 6.8.9-5 (bottled), HEAD
http://www.imagemagick.org
/usr/local/Cellar/imagemagick/6.8.9-5 (1432 files, 22M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/imagemagick.rb
:
“`

imagemagick のラッパー rmagick をインストールします。

> * [rmagick/rmagick](https://github.com/rmagick/rmagick)

“`prettyprinted
% gem install rmagick
Fetching: rmagick-2.13.3.gem (100%)
:
“`

## つかいかた

今回はこんな画像処理をしたい。

* 正方形の画像を作成
* 縦横比を保ったまま短辺を指定した長さにリサイズ
* はみ出した部分をクロップ

ズバリそのものの `resize_to_fill` メソッドで実現できました。

> * [第26回 RMagickを用いた画像処理(1)リサイズ:Ruby Freaks Lounge|gihyo.jp … 技術評論社](http://gihyo.jp/dev/serial/01/ruby/0026?page=2)
> * [RubyのRMagickで縦横比固定でリサイズしたり切り抜いたり – アインシュタインの電話番号](http://blog.ruedap.com/2011/03/22/ruby-rmagick-imagemagick-resize-crop)

“`ruby:resize_to_fill.rb
require ‘rubygems’
require ‘rmagick’
src = ‘src’
dest = ‘dest’
width = 200
height = 200
src_dir = File.join(src, ‘*’)
dest_dir = File.join(dest)
src_images = Dir[src_dir]
src_images.each { |file|
image = Magick::Image.read(file).first
image.resize_to_fill!(width, height)
output_filename = File.join(dest_dir, File.basename(file))
image.write(output_filename)
}
“`

> * [RubyでURLの結合をするときは`File.join`使うと幸せになった – Qiita](http://qiita.com/ryonext/items/0bfd2592d713211bbc2f)

src/ ディレクトリ以下に画像をおいて一括処理。

> * [tools/resize_to_fill.rb at master · DriftwoodJP/tools](https://github.com/DriftwoodJP/tools/blob/master/imagemagick/resize_to_fill.rb)

## 補遺

この他にもいろいろな処理ができますね。

> * [RubyのRMagickで画像をリサイズする – アインシュタインの電話番号](http://blog.ruedap.com/2011/03/21/ruby-rmagick-imagemagick-resize-scale-thumbnail-sample)
> * [Ruby の RMagick を使ってみる](http://www.kkaneko.com/rinkou/ruby/rubyrmagick.html)

imagemagick は重いので Imlib2 を使うとか。

> * [Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成 – 昼メシ物語](http://blog.mirakui.com/entry/20100724/imlib2)
> * [ruby/rmagick – 株式会社ウサギィwiki](http://wiki.usagee.co.jp/ruby/rmagick)
[/markdown]