CarrierWave + RMagick Square Crop?

时间:2013-08-10 21:24:09

标签: ruby-on-rails ruby image-processing carrierwave rmagick

我正在尝试使用Ruby on Rails,CarrierWave和RMagick制作固定的方形图像。

我已经尝试过以下两种情况但没有运气......

version :thumb do
  process :resize_to_fit => [200, 200]
end

version :thumb do
  process :resize_to_limit => [200, 200]
end

resize_to_limit显然会调整图像大小以适应指定的尺寸,同时保留原始高宽比。所以这不对,但resize_to_fit也没有做到。我正在查看所有可用的实例方法here

我希望能够上传任何宽高比和尺寸的照片,它将以200x200的速度出现。

2 个答案:

答案 0 :(得分:16)

终于搞定了!在尝试了一系列不同的自定义图像处理功能和手动裁剪后,它实际上就像我希望的那样简单......

process :resize_to_fill => [400, 400]

将其从原始图像的直接中心裁剪成400x400的正方形。

答案 1 :(得分:1)

gbdev,你的回答绝对正确。但要小心!如果您正在更改流程参数,则必须停止/重新启动rails服务器。

E.g。如果你现在有:

process :resize_to_fit => [400, 400]

并且您想要更改为:

process :resize_to_fill => [400, 400]

然后您必须退回服务器才能看到更改生效。

请注意,这仅适用于该参数哈希的,而不适用于。因此,如果您只是简单地改变尺寸,例如从800x800到400x400,则无需退回服务器。