ActiveStorage をセットアップ後、
class User < ApplicationRecord
has_one_attached :avatarend
end
のように、モデルを定義して、
user.avatar.attach(params[:avatar])
のように、ファイルを添付すると、
user.avatar.metadata[:width]
user.avatar.metadata[:height]
で、幅と高さが取れます。
必要なもの
-
libvips
-
ImageMagick
よりlibvips
の方が早いそうなので
-
-
ruby-vips
- 画像サイズをとるだけだとこれだけで十分
- 画像のリサイズとかする場合には、image_processing も要りそう
いつサイズが測られるのか?
ファイルアップロード時に解析されるそうです。
ただ、触ってみた感じ若干ラグがありそうなので、以下のように使う前に明に分析させた方が良さそう。
user.avatar.analyze unless user.avatar.analyzed
参考
すべて、ここに書いてます!