【问题标题】:CarrierWave + RMagick Square Crop?CarrierWave + RMagick Square Crop?
【发布时间】:2013-08-10 21:24:09
【问题描述】:

我正在尝试使用 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 的尺寸输出。

【问题讨论】:

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


    【解决方案1】:

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

    process :resize_to_fill => [400, 400]
    

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

    【讨论】:

    • 请务必在您的上传器中添加/取消注释 include CarrierWave::RMagick 以使其正常工作。
    • 另外这里是文档rubydoc.info/gems/carrierwave/0.5.1/CarrierWave/…“调整图像大小以适应指定尺寸,同时保留原始图像的纵横比。 如有必要,请以较大的尺寸裁剪图像。
    【解决方案2】:

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

    例如如果您目前有:

    process :resize_to_fit => [400, 400]
    

    而你想改成:

    process :resize_to_fill => [400, 400]
    

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

    请注意,这只适用于该参数散列的 key,而不适用于 value。因此,如果您只是更改尺寸,例如从 800x800 到 400x400,则无需反弹服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2015-04-05
      • 2012-10-04
      • 2014-07-03
      • 2017-06-30
      相关资源
      最近更新 更多