2009-07-22 34 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