2011-08-11 55 views
17

回形針將原始圖像存儲在「原始」文件夾中。有沒有辦法調整原始圖像的大小?爲了節省光碟空間,我想讓原稿更小。在回形針中調整原始圖像

因此,舉例來說,如果訪問者上傳照片與2592x1936我想將它保存爲1024×1024,我們設定的尺寸以同樣的方式:在拇指圖片:風格

更新(解決)

我發現如何在上傳時自動調整原始圖像的大小。一個只需要添加:原來將樣式:

class MyModel < ActiveRecord::Base 
    has_attached_file :photo, 
     :styles => { :original => "1024x1024>", :thumb => "150x150>" } 
end 
+1

希望我能想到這一點。謝謝。 – vise

+0

關於ImageMagick中resize語法的細節,你可以在這裏找到更多的細節:http://www.imagemagick.org/Usage/resize/#resize –

+1

我爲你+1了。但我希望我能做到這一點。一個用於問題,另一個用於最佳答案。 – alybadawy

回答

1

我不知道回形針並通過自身調整。你可能不得不看Rmagick來完成這件事。我會嘗試讓RMagick進入(或minimagick),然後使用before_save回調來執行:resize方法,您可以通過該方法告訴RMagic調整圖像大小。你的方法可能是這樣的:

class Image < ActiveRecord::Base 
    belongs_to :profile 
    before_save :resize 

    def resize 
    self.image = self.image.resize "1024x1024" 
    end 
end 

class Image < ActiveRecord::Base 
    belongs_to :profile 
    before_save do 
    self.image = self.image.resize "1024x1024" 
    end 
end 
+0

Caley Woods,感謝您的回答,但我想知道是否有方法使用Paperclip調整原始圖像的大小。它在創建:thumb圖像時調整大小,也許還有一種方法可以調整:original的大小。 – Evgenii

+0

考慮到這一點,您可能只需分叉回形針並修改源代碼即可:使原始文件具有所需的大小。這就是開源很好的原因。 –

+0

Evgeny在[this asciicast](http://asciicasts.com/episodes/134-paperclip)中指出,您需要使用imagemagick以「''has_attached_file:photo:」格式進行回形針提供的大小調整。 styles => {:small =>「150x150>」}}'''你也想[在這裏閱讀](http://www.imagemagick.org/script/command-line-processing.php#geometry)因爲這指出了在尺寸調用之後可以使用哪些字符來處理寬高比。 –