CarrierWave + RMagick Square Crop?

我试图用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也没有这样做。 我在这里查看所有可用的实例方法。

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

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

 process :resize_to_fill => [400, 400] 

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

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

例如,如果您目前有:

 process :resize_to_fit => [400, 400] 

并且您想要更改为:

 process :resize_to_fill => [400, 400] 

然后你必须退回你的服务器,看看更改生效。

请注意,这仅适用于该参数哈希的 ,而不适用于该 。 因此,如果您只是将尺寸从800×800更改为400×400,那么就无需退回服务器。