carrierwave:多版本策略

时间:2015-06-18 12:36:30

标签: ruby-on-rails carrierwave

我想创建多个版本,例如:large,:medium,:small。到目前为止没问题。但这些方法是如何被调用的?

一个简单的测试:

version :large do
  process :resize_to_fit => [1024, 1024]
end
version :large2, :from_version=>:large do
  process :resize_to_fit => [1024, 1024]
end

导致两个不同大小的文件。我认为版本是相同的。所以我猜:large2正在从磁盘重新读取文件(大)到RMagick?

我该怎么做?#34;对"? (我会使用相同的RMagick-Object来创建版本)我想尝试保持carriewave-way而不是自己做太多。

感谢和问候任何提示,菲尔。

1 个答案:

答案 0 :(得分:-1)

使用uploader.rb文件中的MiniMagick通过Carrierwave创建3个典型图像文件大小的示例

# Create different versions of your uploaded files. 
  version :full do
     process :resize_to_fill => [1024, 1024] 
  end

  version :large_thumb, :from_version => :full do
     process :resize_to_fill => [300, 300] 
  end

  version :thumb, :from_version => :large_thumb do
     process :resize_to_fill => [100, 100] 
  end    

创建不同尺寸图像时的MiniMagick效率注意事项

MiniMagick文档建议处理效率从最大分辨率大小开始并逐渐减小,级联重新调整大小的文件而不是每次从大文件开始作为基本文件转换({{ 3}})。

  

从现有版本创建版本

     

出于性能原因,从中创建版本通常很有用   现有的而不是使用原始文件。如果你的上传者   生成多个版本,其中next小于最后一个版本   将花费更少的时间从较小的已经处理的生成   图像。

您可以使用上面示例中显示的:from_version 指令执行此操作。

MiniMagick resize_to_fill与resize_to_fit,宽高比,缩放

MiniMagick为您提供各种图像处理选项。我发现resize_to_fill比resize_to_fit更适合我的目的,但你的里程可能会有所不同。选择图像重新调整大小选项时需要考虑,尤其是在原始图像的纵横比与调整大小目标图像的纵横比不匹配的情况下。

以下是具有MiniMagick使用的所有图像魔法的ImageMagick规范:https://github.com/carrierwaveuploader/carrierwave

MiniMagick gemspec http://www.imagemagick.org/Usage/resize/#resize