我想创建多个版本,例如: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而不是自己做太多。
感谢和问候任何提示,菲尔。
答案 0 :(得分:-1)
# 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文档建议处理效率从最大分辨率大小开始并逐渐减小,级联重新调整大小的文件而不是每次从大文件开始作为基本文件转换({{ 3}})。
从现有版本创建版本
出于性能原因,从中创建版本通常很有用 现有的而不是使用原始文件。如果你的上传者 生成多个版本,其中next小于最后一个版本 将花费更少的时间从较小的已经处理的生成 图像。
您可以使用上面示例中显示的:from_version 指令执行此操作。
MiniMagick为您提供各种图像处理选项。我发现resize_to_fill比resize_to_fit更适合我的目的,但你的里程可能会有所不同。选择图像重新调整大小选项时需要考虑,尤其是在原始图像的纵横比与调整大小目标图像的纵横比不匹配的情况下。
以下是具有MiniMagick使用的所有图像魔法的ImageMagick规范:https://github.com/carrierwaveuploader/carrierwave
MiniMagick gemspec http://www.imagemagick.org/Usage/resize/#resize