您如何在 Carrierwave 中重新处理不同版本的图像?

Posted

技术标签:

【中文标题】您如何在 Carrierwave 中重新处理不同版本的图像?【英文标题】:How do you reprocess different versions of an image in Carriewave? 【发布时间】:2011-07-05 04:35:20 【问题描述】:

我创建了 3 个版本的头像:

process :resize_to_limit => [400, 400]  

   version :big_thumb do
     process :resize_to_limit => [80, 80]
   end

   version :small_thumb do
     process :resize_to_limit => [50, 50]
   end

我编写了一个裁剪函数来裁剪我的原始版本,它可以工作,但我似乎无法根据新裁剪的原始版本重新生成我的 2 个缩略图。

有什么想法吗?

【问题讨论】:

【参考方案1】:

很抱歉,如果这不是您要找的东西,我是从carrierwave docs 获取的

重新创建版本

您可能会遇到想要追溯更改版本或添加新版本的情况。您可以使用 recreate_versions!从基础文件重新创建版本的方法。这使用了一种简单的方法,它将重新上传和处理所有版本。

instance = MyUploader.new
instance.recreate_versions!

或在已安装的上传器上:

User.all.each do |user|
  user.avatar.recreate_versions!
end

【讨论】:

以上是关于您如何在 Carrierwave 中重新处理不同版本的图像?的主要内容,如果未能解决你的问题,请参考以下文章

Carrierwave、MiniMagick 和调整图像大小

在模型更新后,Carrierwave不会重新创建版本

CarrierWave/Cloudinary 缓存的图像在开发环境中无法跨表单重新显示

重新创建版本 -carrierwave-fog-aws

CarrierWave 和嵌套表单 Gem 重新显示 :: HTML 文件输入图标

Carrierwave + 文件上传器