tomokiの備忘録

ITに関する簡単な備忘録です

【Windows】Ruby on Rails + Carrierwave + RMagickで画像のリサイズ

今回の内容

railstutorial.jp

Ruby on Railsチュートリアルに載っていた画像のリサイズがWindowsで行っているととても難しく、うまくいかなかったのでうまくいった方法を備忘録としてメモ

環境

Windows10

Ruby on Rails 5.1.4

Rmagick 2.16.0

CarrierWave 1.2.2

ImageMagick をインストール

www.ownway.info

 

このサイトを参考に進んでいきます。

http://www.imagemagick.org/download/binaries/ImageMagick-6.9.9-33-Q16-HDRI-x64-dll.exe

をダウンロードし、インストールします。(ビット数は環境に応じて指定してください)

最新版ではない理由は、

RMagick 2.16.0 の時点では ImageMagick 7 系に未対応であり、ImageMagick 6 系を入れる必要がある 

 となっているからです。

インストール時に

  • Add application directory to your system path
  • Install development headers and libraries for C and C++

の2つにチェックを入れます。

 

環境変数の設定

環境変数の設定を開き、

の2つを設定します。

{ImageMagick インストールディレクトリ}は普通にインストールを進めると

C:\Program Files\ImageMagick-6.9.9-Q16-HDRI(バージョンやビット数などは各自)になると思います。

 

RMagickのインストール

使用したいRailsアプリケーションのディレクトリに移動し、

Gemfileに

gem 'rmagick'

を記述し、bundle installを実行します。

 

動作確認

先ほどのサイトに詳しく載っているので割愛します。

 

使用例

基本的な内容は初めに紹介したRuby on Railsチュートリアルと同じです。

変更点は

#画像のリサイズ
include CarrierWave::MiniMagick
process resize_to_limit: [400, 400]

となっているところを

#画像のリサイズ
include CarrierWave::RMagick
process resize_to_limit: [400, 400]

とするだけです。

 

完成!

これで大きすぎる画像を投稿すると任意の大きさにリサイズし、保存することが出来ました!

f:id:tomokiit:20180121234846p:plain