Подтвердить что ты не робот

Изменить размер оригинального изображения в Paperclip

Paperclip хранит исходные изображения в папке "оригинал". Есть ли способ изменить размер исходных изображений? Я хочу сделать оригиналы меньше, чтобы сохранить пространство на диске.

Так, например, если посетитель загружает фотографию с 2592x1936, я хочу сохранить ее как 1024x1024, так же, как мы устанавливаем размеры для: больших изображений в: styles

Обновление (решено)

Я узнал, как автоматически изменять размер исходных изображений при загрузке. Нужно просто добавить стили : оригинал:

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

Ответ 1

Я не уверен, что скрепка сама меняет размер. Возможно, вам придется взглянуть на Рмагика, чтобы это сделать. Я попытался бы запустить 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