目的
RMagick を Windows にインストールすることが目的です。筆者のインストール実績は Windows 7 / Windows 10 に対してあります。
RMagick が特別なのは以下の点です。
- C 言語で実装されたネイティブコードを含んでいる。
- ImageMagick という画像編集用ソフトウェアを使っている。
従って、以下が必要になります。
- DEVELOPMENT KIT をセットアップすること。
- ImageMagick をインストールすること。
手順
1. DEVELOPMENT KIT をセットアップする
- わからない人はこちら。
2. ImageMagick をインストールする
- バージョンの選択に注意すること。
- RMagick 2.16.0 の時点では ImageMagick 7 系に未対応であり、ImageMagick 6 系を入れる必要がある。
- dll 版を使用する。static 版は使用できない。
- x86 / x64 は使用している Ruby の環境に合わせて選択する。
- Q8 や Q16 などは好みで選択して構わない。
- ImageMagick 6 系をダウンロードするには ImageMagick 本家の binaries ディレクトリ配下に置いてある古いバイナリを選ぶ。
- http://www.imagemagick.org/download/binaries/
- ImageMagick の Download ページはこちら:ImageMagick: Install from Binary Distribution
- インストール時、Select Addtional Tasks の画面で以下の選択をする。
- Add application directory to your system path
- Install development headers and libraries for C and C++
3. 環境変数を設定する
RMagick コンパイル時、ImageMagick のインクルードファイルおよびライブラリファイルが見えるようパスを通します。
- CPATH = {ImageMagick インストールディレクトリ}/include *1
- LIBRARY_PATH = {ImageMagick インストールディレクトリ}/lib
※既にコマンドプロンプトを起動している場合は、環境変数を反映するためにコマンドプロンプトを一度閉じて立ち上げなおす必要があります。
4. RMagick をインストールする
準備が整ったら以下のコマンドを実行し、RMagick をインストールします。
gem install rmagick
このコマンドは、
- RMagick 本体のダウンロード
- DEVELOPMENT KIT によるコンパイル作業
- インストール
など、必要な全ての作業をしてくれます。
うまくいかない場合は、トラブルシューティングを参照してください。
5. 確認
以下を実行してください。
gem list --local rmagick
以下の通り出力されることを確認してください。
*** LOCAL GEMS *** rmagick (X.X.X)
以下のコマンドを実行して、RMagick が動くことを確認しましょう。
ruby -e "require 'rmagick';puts Magick::colors"
以下のように色の一覧が出力されれば大丈夫です。
name=AliceBlue, compliance=AllCompliance, color.red=61680.5, color.green=63736.5, color.blue=65535.5, color.opacity=0 name=AntiqueWhite, compliance=AllCompliance, color.red=64250.5, color.green=60395.5, color.blue=55255.5, color.opacity=0 name=AntiqueWhite1, compliance=X11Compliance, color.red=65535.5, color.green=61423.5, color.blue=56283.5, color.opacity=0 name=AntiqueWhite2, compliance=X11Compliance, color.red=61166.5, color.green=57311.5, color.blue=52428.5, color.opacity=0 ...
インストールできても、動作しない場合があるので、ここまで確認してから喜んだ方が良いと思います。
トラブルシューティング
ImageMagick のバージョンを選択する
ImageMagick と RMagick の組み合わせによってはインストールできないことがあります。以下を参考にしてください。
RMagick | ImageMagick | ビット | 成否 | 確認日 | 報告者 |
2.13.2 | 6.5.6-8-Q8-windows-dll | 32 | ○ | - | |
2.13.2 | 6.8.0-3-Q16-windows-x64-dll.exe | 64 | × | - | |
2.13.2 | 6.8.0-4-Q16-windows-dll.exe | 32 | ○ | - | |
2.13.2 | 6.8.2-4-Q16-x86-dll.exe | 32 | × | 2013/02/02 | |
2.13.2 | 6.8.2-4-Q16-x64-dll.exe | 64 | × | 2013/02/02 | |
2.13.2 | 6.8.5-8-Q8-x86-dll.exe | 32 | ○ | 2013/05/30 | |
2.13.2 | 6.8.5-8-Q16-x86-dll.exe | 32 | ○ | 2013/05/30 | |
2.13.2 | 6.8.5-9-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-0-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-1-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-5-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-6-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-7-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-8-Q16-x86-dll | 32 | ○ | 2014/01/20 | passerby |
2.13.2 | 6.8.7-9-Q16-x86-dll | 32 | × | 2014/01/20 | passerby |
2.13.2 | 6.8.7-10-Q16-x86-dll | 32 | × | 2014/01/20 | passerby |
2.13.2 | 6.8.8-0-Q16-x86-dll | 32 | × | 2014/01/20 | passerby |
2.13.4 | 6.9.0-4-Q16-x64-dll | 64 | ○ | 2015/01/27 | |
2.16.0 | 7.0.3-1-Q16-x86-dll | 32 | × | 2016/09/29 | |
2.16.0 | 6.9.5-10-Q8-x86-dll | 32 | ○ | 2016/09/29 | |
2.16.0 | 6.9.6-3-Q16-HDRI-x64-dll | 64 | ○ | 2016/11/01 | |
2.16.0 | 6.9.8-2-Q8-x64-dll | 64 | 〇 | 2017/3/23 | ma |
2.16.0 | 6.9.8-4 Q16 | armv7l | 〇 | 2017/5/8 | z.kangaroo |
2.16.0 | 7.0.5-5 | armv7l | × | 2017/5/8 | z.kangaroo |
動作確認した実績がある方からコメントを頂けるとみんなが助かります。
補足:Q8/Q16, x86/x64, dll/static 等について
まず Q8 と Q16 の違いですが、色の ImageMagick の内部表現ビット数(RGB 各要素に使うビット数)の違いです。
Q8 | RGB の各要素に 8 ビット(RGB 各要素 0 ~ 255/3 色分で 24 ビット) |
---|---|
Q16 | 16 ビット(RGB 各要素 0 ~ 65,536/3 色分で 48 ビット) |
こだわりがないのであればとりあえず Q16 で良いと思います。
次に x86 や x64 ですが、これは 32 ビット版用(x86)か 64 ビット版用(x64)の違いです。使用している Ruby の環境に合わせてください。
OS が 64 ビット版でも 32 ビット版用の Ruby を使用している場合は 32 ビット版用(x86)を使います。
最後に dll と static ですが、これは ImageMagick の機能を外部から使用可能かどうかを表しています。
dll | 外部から機能が使用可能。 |
---|---|
static | 外部から機能が使用不可。 |
RMagick を使うときは必ず dll を使います。
gem install を諦めて自分でコンパイルする
gem install rmagick によるインストールを諦めて自力でコンパイルする方法を紹介します。
この方法を使うと、問題点などが詳細にわかります。状況によってはネイティブコードを自力で修正できるかもしれません。
RMagick をダウンロードし、解凍してください。
- rmagick-rmagick-RMagick_XXX.zip
- ZIP ファイルを適当に解凍する(ユーザディレクトリや日本語を含むディレクトリは推奨しない。無難に tmp フォルダとか作った方が良い)。
- インストール後、解凍したファイル群は削除して構わないので作業用の場所を確保すれば良い。
コマンドプロンプトで以下を実行してください。
cd {DEVELOPMENT KIT のインストールディレクトリ} devkitvars.bat msys
msys を実行した時点で新しいコマンドプロンプトが起動します。以下のコマンドを新しく起動したコマンドプロンプトで実行してください。
msys の環境ではディレクトリの指定方法が Windows 標準と以下のように異なるので注意してください。
- ディレクトリの区切りは「\」ではなく「/」を使用する。
- ドライブの指定が「C:\」ではなく「/c」となる。
cd {RMagick を解凍したディレクトリ} ruby setup.rb ruby setup.rb install gem install --bindir ext/RMagick rmagick
最後の gem install コマンドは実行しなくても動きます。 Bundler を利用している場合など、 gem で管理されていることがどうしても必要な場合などに使ってください。
ruby setup.rb 実行時に Unable to get ImageMagick version が発生した場合
ruby setup.rb 実行時にエラーが発生する場合があります。その場合、エラーメッセージの中に以下の内容が無いか確認してください。
無効なドライブ指定です。 Unable to get ImageMagick version
その場合、{RMagick を解凍したディレクトリ}/ext/RMagick/extconf.rb を書き換えて対処します。
extconf.rb を「Unable to get ImageMagick version」というキーワードで検索してください。
以下のような記述が2箇所見つかるはずです。
`convert -version` =~ /Version: ImageMagick (\d+\.\d+\.\d+)-\d+ / abort "Unable to get ImageMagick version" unless $1
convert の部分を identify に書き換えて保存し、ruby setup.rb を再度実行してください。
convert コマンドは本来 ImageMagick のコマンドですが、Windows には組み込みで convert というコマンドがあり、ImageMagick の convert コマンドの呼び出しがうまくいかないのが原因です。
代わりに ImageMagick の identify コマンドが使えるので、そちらを使うように書き換えるというのがこの対処方法の意味合いです。
それでもダメな場合
コメントに症状を書いてください。
何か参考になる情報を提供できるかもしれません。もしくは、第三者の誰かが助けてくれるかもしれません。
参考
以下は英語のページです。本ページは、以下のページの手順を試した結果を踏まえ、それを日本語にしたものです。
関連
- RMagick について
- RMagick の使い方を簡単にまとめている。
- How to install RMagick on Windows.
- English version of this article.
コメント
本ページの内容に関して何かコメントがある方は、以下に記入してください。
最新の10件を表示しています。 コメントページを参照