Изменить размер оригинального изображения в Paperclip
Paperclip хранит исходные изображения в папке "оригинал". Есть ли способ изменить размер исходных изображений? Я хочу сделать оригиналы меньше, чтобы сохранить пространство на диске.
Так, например, если посетитель загружает фотографию с 2592x1936, я хочу сохранить ее как 1024x1024, так же, как мы устанавливаем размеры для: больших изображений в: styles
Обновление (решено)
Я узнал, как автоматически изменять размер исходных изображений при загрузке. Нужно просто добавить стили : оригинал:
class MyModel < ActiveRecord::Base
has_attached_file :photo,
:styles => { :original => "1024x1024>", :thumb => "150x150>" }
end
Ответы
Ответ 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