Базовое изменение размера изображения в Ruby on Rails

Я создаю небольшой сайт обмена фотографиями для внутренней сети нашего дома, и у меня есть функция загрузки, которая загружает фотографии в оригинальном размере в базу данных. Однако я также хочу сохранить фотографию в четырех других размерах: W = 1024, W = 512, W = 256 и W = 128, но только размеры меньше исходного размера (например, если исходная ширина равна 511, генерировать только 256 и 128). Изображение с шириной 128 всегда должно быть сгенерировано (потому что это эскиз). Кроме того, изменение размера всегда должно быть пропорционально ширине и высоте. Как я могу это реализовать? У меня уже есть этот код для загрузки фотографии:

pic.rb <- модель
def image_file=(input_data)
  self.filename     = input_data.original_filename
  self.content_type = input_data.content_type.chomp
  self.binary_data  = input_data.read
  # here it should generate the smaller sizes
  #+and save them to self.binary_data_1024, etc...
end
new.rb <- посмотреть
<h1>New pic</h1>

<% form_for(@pic, :html => {:multipart => true}) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </p>
  <p>
    <%= f.label :description %><br />
    <%= f.text_field :description %>
  </p>
  <p>
    <%= f.label :image_file %><br />
    <%= f.file_field :image_file %>
  </p>
  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Back', pics_path %>

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос