2011-08-11 24 views
17

Ataç, orijinal görüntüleri "orijinal" klasöründe saklar. Orijinal görüntüleri yeniden boyutlandırmanın bir yolu var mı? Disk alanını saklamak için orijinalleri daha küçük yapmak istiyorum.Orijinal görüntüyü yeniden boyutlandırmaya getirin Paperclip

ziyaretçi 2592x1936 bir fotoğraf yüklediğinde

Yani, örneğin, ben, 1024x1024 olarak biz boyutlarını ayarlamak aynı şekilde saklamak istediğiniz : başparmak görüntüleri: stilleri

Güncelleme (çözüldü)

Orijinal görüntüleri otomatik olarak nasıl yükleyeceğinizi öğrendim. Birtanesi eklemek gerekir: orijinali stillerine:

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

İstek Bunu düşünseydim: sevdiği yöntem görünebilir. Teşekkürler. – vise

+0

ImageMagick'teki yeniden boyutlandırma sözdizimi hakkında ayrıntılı bilgi için, http://www.imagemagick.org/Usage/resize/#resize –

+1

Size daha fazla bilgi bulabilirsiniz. ama keşke bunu iki kere yapabilirdim. Soru için bir tane ve en iyi cevap için bir tane. – alybadawy

cevap

1

Ben ataç kendisi tarafından boyutlandırma olmadığından emin değilim. Bunu yapmak için Rmagick'e bakmak zorunda kalabilirsiniz. RMagick'i (veya minimagick) kullanmaya çalışacağım ve daha sonra görüntüyü yeniden boyutlandırmak için RMagic'e söyleyen bir :resize yöntemini çalıştırmak için bir before_save geri çağrısı kullanacağım.

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

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

veya

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

Caley Woods, cevabınız için teşekkürler, ancak orijinal görüntüyü yalnızca Paperclip ile yeniden boyutlandırmanın bir yolu olup olmadığını öğrenmek istedim. Başparmak görüntüleri oluşturduğunda yeniden boyutlandırır, belki de orijinali yeniden boyutlandırmak için bir yol vardır. – Evgenii

+0

Bunu düşünerek, ataçmanı çatallamanız ve kaynağı değiştirmek için kaynağı değiştirmeniz yeterlidir: orijinali istediğiniz boyutta olmalıdır. Bu yüzden açık kaynak harika. –

+0

Ayrıca Evgeny, [bu asciicast] (http://asciicasts.com/episodes/134-paperclip) 'de belirtildiği gibi, paperclip tarafından sağlanan yeniden boyutlandırmayı yapmak için imagemagick'e ihtiyaç duyacaktır: '' 'has_attached_file: photo:: styles => {: small => "150x150>"} '' 've burada okumak istersiniz (http://www.imagemagick.org/script/command-line-processing.php#geometry) Bu, boy oranlarıyla başa çıkmak için boyut çağrınızdan sonra hangi karakterleri kullanabileceğinizi gösterir. –

İlgili konular