画像のサムネイルを作ってみよう
Created by Miha Filej, @mfilej, Translated by Hiroshi SHIBATA @hsbt, Goh Matsumoto @urimaro
インターネットはスピードがすべてです。ページが読み込まれるスピードが速ければ速いほど、ページから離れていく人は少なくなります。そして、私たちはアイデアアプリで素晴らしいアイデアを共有したいので、人々に留まっていてほしいと考えています!また、データの転送量が少なくて済むと、データプランを契約している訪問してくれた人たちから感謝されると思います。
ページの読み込みを速くする方法の1つは、小さいサイズの画像を表示することです。画像のサイズが小さければ小さいほど、インターネット上の転送速度は速くなります。
ImageMagick をインストールしよう
アイデアにアップロードした画像のサイズを変更するために ImageMagick を使います。
ターミナルで次のコマンドを実行してください:
Ubuntu を使っている場合、ターミナルで次のコマンドを実行してください:
ImageMagick のインストーラー をダウンロードし(最初の download リンクをクリックしてください)、実行してください。インストーラーのウィザードで「Install legacy utilities」のチェックボックスをチェックしてください。
ImageMagick とは何か、以前使ったライブラリや gem とどう違うのかを説明してください。
ImageMagick 用の Ruby gem をインストールしよう
Ruby が ImageMagick とやり取りできるようにするために、Ruby gem mini_magick
を使います。まずアプリに追加してインストールする必要があります。
Gemfile
をテキストエディタで開き、この行を追加してください:
以下の行の下です:
ターミナルでこのコマンドを実行してください:
インストール後、Rails サーバーを(再)起動してください。
サムネイルを作成するようアプリに指示しよう
これで Ruby gem mini_magick
を通して ImageMagick とやり取りできるようになったので、ファイルをアップロードするための gem carrierwave
にアップロードする画像ごとにサムネイルを作るように指示できます。
app/uploaders/picture_uploader.rb
を開いて、以下の行を探しましょう。
行の先頭にある #
を削除します。
コード上のコメントの用途やどのような時に使うかを説明してください。
今変更した行の下に以下を追加します。
これからアップロードされる画像は小さいサイズにリサイズされますが、すでにアップロードされた画像は変更されません。もう一度アイデアを編集して新しい画像を追加してください。保存するとアップロードした画像のサムネイルがアイデアに表示されます。
サムネイルを表示してみよう
アイデアの画像の表示方法は変えていないので、まだ元の大きな画像が表示されるはずです。ビューを変更してサムネイルを表示するように変えてみましょう。
app/views/ideas/_idea.html.erb
を開いて、以下の行を変更してください:
このように変更します。
サムネイルが表示されるようになったことを確かめるために、ブラウザで アイデアの一覧 を表示してください。
HTMLで画像の幅を指定することとサーバで画像をリサイズすることの違いを説明してください。どちらも小さく見えると思いますが、サムネイルとしてリサイズされるのは片方だけです。
ガイドを進めていて行き詰まったときはコーチに助けてもらいましょう。また Ruby、Rails、コンソール、テキストエディタについての便利なチートシート も参考にしてみてください。
ガイド
- ガイド 1: はじめに
- ガイド 2: ツールについて知ろう
- ガイド 3: Railsインストールガイド
- ガイド 4: はじめてのアプリを作る
- ガイド 5: HTMLとCSSを使ってアプリをスタイリングしよう
- ガイド 6: アプリに新しいページを追加しよう
- ガイド 7: あなたのアプリに新しいホーム画面を追加しよう
- ガイド 8: 画像アップロード機能を追加しよう
- ガイド 9: GitHub であなたのアプリのコードを公開しよう
- ガイド 10: これらのサービスのどれかで あなたのアプリをインターネットに公開しよう
- ガイド 11: HTML & CSS を使ってデザインしてみよう
- ガイド 12: あなたのアプリにコメント出来るようにしましょう
- ガイド 13: Carrierwave を使って画像をリサイズしよう (このページです!)
- ガイド 14: RSpecでアプリをテストしよう