2012-01-31 46 views
1

我正在尋找一種方法來即時生成上傳圖像的縮略圖。我有一個產品模型,看起來有點像這樣:Rails - 如何即時生成縮略圖

class Product 
     include Mongoid::Document 
     include Mongoid::Paperclip 

     has_mongoid_attached_file :picture 
    end 

我基本上只是想上傳一個高分辨率的圖片,我就可以使用縮略圖,在主圖像,也是高清晰度圖片爲花式框等。

有沒有簡單的方法來做到這一點?

+0

不確定ImageMagick是否有寶石,但是(或者類似的東西)是要走的路。 – 2012-01-31 15:40:37

+1

我發現這個蜻蜓很好 – 2012-01-31 15:44:07

+0

據我所知,蜻蜓不適合MongoId,是嗎? – 2012-01-31 15:46:48

回答

1

可以爲paperclip attached_file設置許多屬性。

例如,

has_mongoid_attached_file :picture, 
    :styles => { 
     :original => ['1920x1680>', :jpg], 
     :small => ['100x100#', :jpg], 
     :medium => ['250x250', :jpg], 
     :large => ['500x500>', :jpg] 
    } 

您可以設置:風格與你想要的大小和格式圖像的多個版本屬性。

檢查here瞭解更多詳情。不過你確實需要像RMagick/Imagemagick這樣的圖像處理器。

+0

謝謝,但這個解決方案的問題是,上傳時會生成法師。當開發過程中圖像尺寸發生變化時,或者在不同尺寸的情況下添加了另一個視圖時,這種類型的圖像會變得很糟糕... – 2012-01-31 17:31:40

+0

開發過程中縮略圖大小的變化是沒有問題的。您可以隨時使用「rake回形針:刷新:縮略圖CLASS = <您的課程在這裏>」重新生成所有縮略圖。 – Joseph 2013-10-11 15:21:06