CarrierWave和调整大小到特定宽度

30
在Rails 3.0中使用CarrierWave,如果要调整宽度大于500像素的图像大小为500像素,并适当调整高度-保持相同的宽高比,应该如何编写代码?

可能是Carrierwave - 调整图像大小为固定宽度的重复问题。 - Mohammed Azharuddin Shaikh
这是关于保持纵横比并固定一个维度的内容,与编程有关。 - sevenseacat
4个回答

50

你可以使用:

process :resize_to_limit => [500, nil]

那似乎是正确的语法。 - valk

30
process :resize_to_limit => [500, 0]

这将处理图像使其宽度不超过500像素,同时保持适当的长宽比并允许任何高度。


6
在使用carrierwave 0.10.0和mini_magic 3.6.0时,会导致图像缩小为1x1像素。相反,使用参数[500, nil]适用于我。 - efatsi

4

我知道这是一个老问题,但我需要类似的东西。

如果图像大于给定大小,则希望调整图像大小,但如果它们较小,则不进行缩放。

resize_to_limit(width, height)

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

详细信息: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051


1
如果您只想限制宽度,请使用以下代码:

process :resize_to_limit => [500, -1]

并使用:

process :resize_to_limit => [-1, 500]

仅限制高度。


它抛出 height must be >= 0: -1 - MaicolBen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接