如何在Rails中的carrierwave gem中将上传的图像大小调整为特定宽度

时间:2015-11-18 11:46:59

标签: ruby-on-rails carrierwave crop

我正在使用carrierwave将图片上传到我的rails应用。

我希望根据max-widthheight固定为特定尺寸和width

当我这样做时

version :medium do
   resize_to_limit(600,0)
end

然后图像没有出现。

此外,resize_to_limitresize_to_fit

之间的区别是什么

请指导。

2 个答案:

答案 0 :(得分:4)

如果您对只有一个版本感到满意,那么您可以将其添加到您的上传器中:

include CarrierWave::MiniMagick
process resize_to_fill: [600, 0]

以下是documentation for resize_to_limit

  

调整图像大小以适合指定的尺寸,同时保留原始高宽比。仅当图像大于指定尺寸时才会调整图像大小。生成的图像可能比较小的尺寸中指定的更短或更窄,但不会大于指定的值。

这是resize_to_fit

  

调整图像大小以适合指定的尺寸,同时保留原始高宽比。图像可能比较小尺寸中指定的更短或更窄,但不会大于指定值。

此处为resize_to_fill

  

调整图像大小以适合指定的尺寸,同时保留原始图像的纵横比。如有必要,请以较大的尺寸裁剪图像。

答案 1 :(得分:0)

您需要重新创建新版本的图片上传器,如: -

version :medium do
    process :resize_to_fill => [600,0]
end

然后重新创建它们: -

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