Я создаю небольшой сайт для обмена фотографиями для нашей домашней интрасети, и у меня есть функция загрузки, которая загружает фотографию с исходным размером в базу данных. Тем не менее, я также хочу сохранить фотографию в четырех других размерах: 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 < - view
<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 %>
Спасибо