はじめに
Rails 6 に追加されそうな新機能を試す第53段。 今回は、 tiff
編です。
Rails 6 では、variant
メソッドが tiff
フォーマットの画像ファイルをサポートするようになりました。
Ruby 2.6.3, Rails 6.0.0.rc1, Rails 5.2.3 で確認しました。Rails 6.0.0.rc1 は gem install rails --prerelease
でインストールできます。
$ rails --version
Rails 6.0.0.rc1
準備
今回は、 Rails6 のちょい足しな新機能を試す15(Active Storage編) を元にして作業を進めます。
Gemfile に MiniMagick を追加する
画像を変換するために MiniMagick を使用します。
...
gem 'mini_magick'
...
show ページを修正する
show ページで、 variant
メソッドを呼び出して画像ファイルをリサイズしてみます。
元の画像ファイルと、 50x50 に変換した画像を表示します。
...
<% if @user.avatar.attached? %>
<h2>original size</h2>
<%= image_tag @user.avatar %>
<h2>50x50 size</h2>
<%= image_tag @user.avatar.variant(resize: "50x50") %>
<% end %>
...
ユーザー登録して確認する
ブラウザからユーザーを登録します。
このとき画像ファイルとして tiff ファイルを選択します。
詳細画面を表示するとサイズを変換した画像が表示されます。
なお、 tiff ファイルは、 IE や Safari であれば表示できますが、 Firefox や Chrome では表示できないようです。
ですが、サイズ変換した画像は、 PNG フォーマットになるので、変換した画像は、 Chrome でも表示できました。
下は、Chrome のスクリーンショットです。
Rails 5 では
ActiveStorage::InvariableError
が発生します。
試したソース
試したソースは以下にあります。
https://github.com/suketa/rails6_0_0rc1/tree/try053_accept_tiff_by_variant