如何使用Paperclip(或RMagick)进行裁剪和填充?

7

我上传了一张矩形照片,如何将其调整大小并填充为正方形?

我的意思是当照片水平放置时,应该在其上方和下方有两个白色区域(以保持正方形的形状),当它垂直时,照片两侧应该有两个白色区域。

当我使用PHP时,我使用了这个http://www.verot.net/php_class_upload_samples.htm

看看这个示例:

100x150,保持比例,填充顶部和底部

我正在使用RoR的Paperclip。最佳方法是什么?

1个回答

17

这是我在一个使用paperclip的rails 3应用程序中使用的方法。我使用了以下ImageMagick选项来使其居中:background、compose、gravity和extent。我正在使用mini_magick处理器。

has_attached_file :image,
  :styles => { :large => ["855x570>", :jpg], :medium => ["432x288>", :jpg], :small => ["276x184>", :jpg], :tiny => ["195x130>", :jpg] },
  :processor => "mini_magick",
  :convert_options => {
    :medium => "-background white -compose Copy -gravity center -extent 432x288",
    :small => "-background white -compose Copy -gravity center -extent 276x184",
    :tiny => "-background white -compose Copy -gravity center -extent 195x130"
  }

1
写得不错的例子。这在Rails 4中使用Paperclip 3.5.4可行。提示:Imagemagick默认背景颜色为白色,因此不必指定该选项。 medium: '-compose Copy -gravity center -extent 432x288' - scarver2
提醒一下:确保在样式定义中没有尾随的 #。因此,:large = ["855x570#", :jpg] 将无法工作,因为 855x570 后面的 # 告诉 paperclip 裁剪并居中图像。 - Richard Jones

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