在Paperclip中调整原始图像的大小

时间:2011-08-11 14:07:30

标签: ruby-on-rails-3 paperclip

Paperclip将原始图像存储在“原始”文件夹中。有没有办法调整原始图像的大小?我想缩小原件以节省光盘空间。

因此,例如,如果访问者使用2592x1936上传照片,我想将其存储为1024x1024,就像我们设置以下尺寸一样:拇指图像:样式

更新(已解决)

我发现了如何在上传时自动调整原始图像的大小。只需要将:原始添加到样式:

class MyModel < ActiveRecord::Base
    has_attached_file :photo, 
        :styles => { :original => "1024x1024>", :thumb => "150x150>" }
end

1 个答案:

答案 0 :(得分:2)

我不确定paperclip是否会自行调整大小。您可能需要查看Rmagick才能完成此操作。我会尝试让RMagick继续(或minimagick),然后使用before_save回调来执行您编写的:resize方法,该方法告诉RMagic调整图像大小。您的方法可能如下所示:

class Image < ActiveRecord::Base
  belongs_to :profile
  before_save :resize

  def resize
    self.image = self.image.resize "1024x1024"
  end
end

class Image < ActiveRecord::Base
  belongs_to :profile
  before_save do
    self.image = self.image.resize "1024x1024"
  end
end