2011-11-05 104 views
2

我的服務同時具有網頁版本和iPhone版本。在iPhone上,我們確保用戶在上傳時提交正方形版本。我們也允許在網站上上傳,但我們沒有這樣的功能。使用mini_magick調整圖像大小

因此,我想將任何上傳的圖像縮放到612 * 612區域。什麼是實現這一目標的最佳方式?

我使用Ruby/mini_magick

回答

9

你只使用來自MiniMagick的resize方法,還有GitHub的頁面上的例子:

https://github.com/probablycorey/mini_magick

想必你有圖像作爲一堆字節在內存中,所以像這樣:

image = MiniMagick::Image.read(your_image_bytes) 
image.resize('612x612') 
scaled_image_bytes = image.to_blob 
# Or image.write(filename) 

MiniMagick用來上漿標準ImageMagick的幾何字符串和從fine manual,一個WxH幾何:

高度和給定的寬度,縱橫比保存的最大值。

因此使用'612x612'將縮放圖像以適應612px的方格,同時保持縱橫比。

你也可以使用Jcrop來讓你的網絡用戶裁剪他們上傳的圖像以適合正方形。

+1

另一個值得研究的寶石是CarrierWave,它與MiniMagick一起工作時會帶來相當大的痛苦。有幾個選項,包括resize_and_pad,這將確保你有一個正方形的圖像,但沒有裁剪任何重要的東西。我們將此與JCrop結合使用。 –