【问题标题】:Resize original image in Paperclip在回形针中调整原始图像的大小
【发布时间】:2011-10-25 00:50:16
【问题描述】:

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

因此,例如,如果访问者上传一张 2592x1936 的照片,我想将其存储为 1024x1024,就像我们在 :styles 中设置 :thumb 图像的尺寸一样

更新(已解决)

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

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

【问题讨论】:

  • 希望我能想到这一点。谢谢。
  • 关于 ImageMagick 中的 resize 语法的详细信息,您可以在这里找到更多详细信息:imagemagick.org/Usage/resize/#resize
  • 我为你 +1 了。但我希望我能做到两次。一个代表问题,一个代表最佳答案。

标签: ruby-on-rails-3 paperclip


【解决方案1】:

我不确定回形针是否会自行调整大小。您可能需要查看 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

【讨论】:

  • Caley Woods,谢谢你的回答,但我想知道是否有办法只用回形针调整原始图像的大小。它在创建 :thumb 图像时会调整大小,也许还有一种方法可以调整 :original 的大小。
  • 考虑到这一点,您可能只需要分叉回形针并修改源以使 :original 具有您想要的大小。这就是开源很棒的原因。
  • 正如this asciicast 中指出的那样,您还需要imagemagick 以has_attached_file :photo, :styles =&gt; { :small =&gt; "150x150&gt;" } 的格式进行回形针提供的调整大小,并且您还需要read here,正如这所指出的那样在调用大小后可以使用哪些字符来处理纵横比。
猜你喜欢
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多