【问题标题】:Resize existing images to new style in paperclip & RMagick在回形针和 RMagick 中将现有图像调整为新样式
【发布时间】:2011-02-27 23:11:41
【问题描述】:

我一直在使用回形针在我的 Rails 应用中上传照片并自动调整其大小,我喜欢它。唯一的问题是每隔一个月我疯狂的经理决定他想要一个新的尺寸来显示照片。所以我在我的照片模型中添加了一个新的风格,一切都适合新照片,但预先存在的照片现在是个问题.现在我开始处理多张照片,我需要一种编程方式来调整现有照片的大小。也许这样的事情有一些回形针技巧?如果不需要的话,我真的宁愿不必自己弄清楚 RMagick 并自己编写脚本。

【问题讨论】:

  • 好问题亲爱的+1 !!!

标签: ruby-on-rails ruby imagemagick paperclip rmagick


【解决方案1】:

试试这个由回形针提供的 rake 任务

rake paperclip:refresh:missing_styles

参考: https://github.com/thoughtbot/paperclip#post-processing

【讨论】:

  • ...或者只为一个模型做:rake paperclip:refresh:missing_styles CLASS=YourModelName
  • 别忘了用任务设置rails环境。 rake paperclip:refresh:missing_styles CLASS=YourModelName RAILS_ENV=production
【解决方案2】:

您需要 Paperclip::Attachment 的 reprocess! 方法。见the docs

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end

# Console...
>> User.find_each { |u| u.avatar.reprocess! }

另外,根据reprocess!方法之前的cmets,有一个回形针:刷新Rake任务,这可能更容易。

【讨论】:

  • 这里是重新生成回形针样式的文档。 github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation 命令应该是rake paperclip:refresh:YOUR_STYLE_HERE CLASS=User
  • 仅供参考,如果您有一个多态模型来处理所有回形针附件,例如称为 Picture,您需要执行以下操作:Gallery.pictures.file.reprocess!
  • 这对我有用,而 rake 任务失败(找不到回形针 yml 文件)。我继承了这个应用程序,它似乎没有使用 yml 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
相关资源
最近更新 更多