如何使用CarrierWave获取图像高度和宽度?

时间:2018-04-26 11:37:33

标签: ruby-on-rails ruby image image-processing

我是Rails的新手。我尝试创建一个用于处理图像的应用程序。它应该根据图像大小做一些操作。

我使用CarrierWave作为上传者,上传后我需要获取图片widthheight并将其保存在变量中。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

假设您在MiniMagick::Image

中使用uploader

在你的模型中定义一个方法: - 让我们说:

class MyModel < ApplicationRecord
  mount_uploader :avatar, AvatarUploader

  def get_image_height_and_width
    image = MiniMagick::Image.open(avatar.path)
    return [image[:width],image[:height]]
  end
end

你可以在你的对象例子上调用它: -

MyModel.find(#id_of_field).get_image_height_and_width
=> [100px,200px] #will return array to width and height