【162日目】【1日20分のRailsチュートリアル】【第11章】アップロード時に画像のリサイズを実施する
今日は「11.4.3 画像のリサイズ」から。
11.4.3 画像のリサイズ
ファイルサイズに対するバリデーション (11.4.2) はうまくいきましたが、画像サイズ (縦横の長さ) に対する制限はないので、大きすぎる画像サイズがアップロードされると図11.21のようにレイアウトが壊れてしまいます。
そうそう、レイアウトが崩れちゃうんですよね~。(実践済み)
画像をリサイズするためには、画像を操作するプログラムが必要になります。今回はImageMagickというプログラムを使うので、これを開発環境にインストールしておく必要になります。 Cloud IDEでは下記コマンドでImageMagickをインストール。
インストール途中で続けていいか聞かれるのでY
を入力。
$ sudo apt-get update $ sudo apt-get install imagemagick --fix-missing
次に、MiniMagickというgemを使って、CarrierWaveからImageMagickを使えるようにします。
元々生成されてたinclude文をコメントアウトして、縦横どちらかが400pxを超えていた場合、適切なサイズに縮小するオプションを追加。
これだけでリサイズできちゃうの…?
app/uploaders/picture_uploader.rb
: # Include RMagick or MiniMagick support: # include CarrierWave::RMagick include CarrierWave::MiniMagick process resize_to_limit: [400, 400] :
気になるので動作見てみよう。
サーバーを起動して
$ rails server -b $IP -p $PORT
前と同じ画像をアップロードしてみる。
わー!リサイズできてる!!いい感じ!
画像のアップロード時にリサイズするのですでにアップロードしてるやつには適用されないよう。残念なままで残しておくか。。。。
今日の学習時間は【22分】。
次は「11.4.4 本番環境での画像アップロード」、、、と見せかけて、本番環境はそもそもアカウント登録できない(メール機能追加してない)のでこの項はスルーかな。
また本番環境作りたい!と思ったときにでも読みます。
というわけで次は「11.5 最後に」から。いよいよ第11章も終わりが近づいてきた…!