2009-07-22 75 views
7

我上传了一张照片,它是一个矩形。我怎样才能将它调整大小并填充到正方形?如何裁剪和填充回形针(或RMagick)?

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

当我使用PHP,一个已经用这种http://www.verot.net/php_class_upload_samples.htm

看一看的

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

例如

我与RR一起使用回形针。如何做到这一点的最佳途径?

回答

1

您需要定义样式。 Here's an example

+0

是的,我知道,但如何做到这一点? http://www.imagemagick.org/Usage/thumbnails/#fit – astropanic 2009-07-22 17:26:54

+0

has_attached_file:picture,:styles => {:custom =>“100x100>”} – 2009-07-22 17:31:58

+0

这不会在方框中居中图像 – astropanic 2009-07-22 17:37:23

17

这是我用在rails 3应用程序w/paperclip上。我用下面的ImageMagick选项使其居中:背景,合成,重力和范围。我正在使用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 2014-09-04 20:28:11

+0

只是一个脑袋:确保样式定义中没有尾随'#'。因此,':large = [“855x570#”,:jpg]'将不起作用,因为'855x570'后的'#'指示回形针裁剪和居中图像。 – 2017-03-28 17:05:42