読者です 読者をやめる 読者になる 読者になる

ImageMagickの最新版とRMagickをWindowsにインストールする(ImageMagick 6.9.1, RMagick 2.15.4, Ruby 2.2.2)

RMagickというのはruby用の画像編集ライブラリです。使用するにはImageMagickを別途インストールしておかなければいけないのですが、バージョンの相性関係にナイーブで、特定のバージョンのRMagickには特定のバージョンのImageMagickしか使えない、おかげで古いバージョンのImageMagickを使うことを余儀なくされる、しかもそのバージョンが古すぎてもう配布されてなくて詰む、というケースがよくありました。

久しぶりにRubyの環境構築をしたら最新のImageMagickが使えたので手順をご紹介します。

1.Rubyをインストールします

RubyInstallerのダウンロードページから最新版(今回は Ruby 2.2.2 (x64) )を落としてきてインストールします。途中で「Rubyの実行ファイルへ環境変数PATHを設定する」というオプションが出てくるので、チェックしておきます。

ちなみにActiveScriptRubyだとDevKitがないので今回の方法ではRMagickのインストールができません。残念。

2.DevKitを入れます

おなじくRubyInstallerのダウンロードページから、DevKitを落としてきてインストールします。ちょっと下に行ったところにある Development Kit の、 For use with Ruby 2.0 and above (x64 - 64bits only) です。

DevKitは自動解凍ファイルになっているので、 C:¥DevKit とかを作ってそこに展開します。パスにスペースが入るとダメっぽいです。ディレクトリを作ってくれないので、デスクトップとかに適当に解凍すると大量のファイルがばらまかれひどい目に遭うので注意です。

スタートメニューから「Ruby コマンドプロンプトを開く」を起動(ない場合は すべてのアプリ→Rubyなんとか…の中)、いまDevKitを入れた場所に移動して、Rubyに紐づけます。

cd C:¥DevKit
ruby dk.rb init
ruby dk.rb install

これでOKです。

3.ImageMagickをインストールする

いよいよ待ちに待ったImageMagick最新版のインストールです。ドキドキしますね!

ImageMagickのダウンロードページから、最新版を落としてきます。リストの上の Looking for the latest version? のところに出てるやつでいいと思います。

インストール中、下記のチェックボックスを忘れずにチェックしましょう。

f:id:slideglide:20150815042407p:plain

上から2番目の「Add application...」と、4番目の「Install development...」っていうやつです。1番目はどっちでもいいです。

4.convertコマンドのチェック

またスタートメニューから「Ruby コマンドプロンプトを開く」を開いて(2.で開いたウィンドウでやると失敗するので、いったん閉じてください)、

convert -v

を実行してください。

By default, the image format of `file' is determined by its magic
number.  To specify a particular image format, precede the filename
with an image format name and a colon (i.e. ps:image) or specify the
image type as the filename suffix (i.e. image.ps).  Specify 'file' as
'-' for standard input or output.

最後がこれで終わる、めちゃくちゃ長いヘルプが出てきたらOKです。

これは何をしているかというと、convertコマンドを実行するとImageMagickのconvertコマンドが呼び出されることの確認です。Windowsにも同名のコマンドがあるらしく、環境によってはそちらが呼び出される場合があります。次項目のgemのインストール中にこのコマンドを使用するため、そこでWindowsのコマンドになってしまうとこけます。

期待したメッセージが出なかった場合は、環境変数のPATHで、ImageMagickのインストール先を頭に持ってきたりするといいのではないかと思います。

5.gemのインストール

そのままコマンドプロンプト上で、

gem install rmagick -- '--with-opt-dir="c:\Program Files\ImageMagick-6.9.1-Q16-HDRI"'

です。引用符が二重になるあたりがやばいですね。インストール先が違う場合は適宜書き換えてください。

Fetching: rmagick-2.15.4.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-opt-dir="c:\Program Files\ImageMagick-6.9.1-Q16-HDRI"'
This could take a while...
Successfully installed rmagick-2.15.4
Parsing documentation for rmagick-2.15.4
Installing ri documentation for rmagick-2.15.4
Done installing documentation for rmagick after 12 seconds
1 gem installed

と出てきて無事インストール完了です。

なお、自分の環境では不要でしたが、--platform=ruby オプションを付けないと入らないという情報もありましたのでご参考まで。

gem install rmagick --platform=ruby -- '--with-opt-dir="c:\Program Files\ImageMagick-6.9.1-Q16-HDRI"'

6.動作確認

require 'RMagick'
include Magick
f = Image.new(100,100) { self.background_color = "red" }
f.write("square.gif")

上記のコードを拡張子.rbの適当な名前で保存、実行して赤い四角の画像 square.gif が生成されればインストール成功です。

ruby test.rb

f:id:slideglide:20150815044733g:plain

やったね!
f:id:slideglide:20150815051010j:plain
万歳!!!!!

おもったより普通の手順で行けたので意外な感じですね。もしかしたらRMagickがバージョン相性にうるさかったのはもう過去の話なのかもしれません。あるいはたまたま今回試した ImageMagick 6.9.1 と RMagick 2.15.4 の相性が良かっただけということもありえますが……。