LoginSignup
0
0

More than 1 year has passed since last update.

ActiveStorage に保存した画像のサイズを取得する

Posted at

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

参考

すべて、ここに書いてます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0