Как обрезать и затем изменить размер с помощью скрепки - PullRequest
3 голосов
/ 27 апреля 2011

У меня есть вложение фотографии, которое я сохраняю с помощью Paperclip. Тем не менее, я хотел бы обработать фотографию перед сохранением, обрезав ее и затем изменив размер до окончательного: например У меня есть фотография 900x900, я хочу сначала сделать центральную обрезку до 500x500, а затем изменить размер обрезанной фотографии до размера миниатюры 100x100.

Цель этого состоит в том, чтобы уменьшенное изображение не было просто уменьшенной версией 900x900, поскольку оно могло быть слишком маленьким, чтобы что-либо различить на фотографии. Обрезая его, мы уменьшаем огромную часть фотографии, которая может быть пропущена, но при этом получим значимый уменьшенный эскиз.

Я знаю, что скрепка может обрезать или изменять размер, но есть ли способ объединить оба?

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

Спасибо

Ответы [ 2 ]

9 голосов
/ 20 сентября 2011

Возможно, есть лучший способ сделать это, но если вы используете ImageMagick, этот способ работает нормально.

Следующее сначала обрежет в центре изображения в 500x500, а затем выбросит все остальное,затем измените размер нового изображения до 100x100.

has_attached_file :image,  
  :styles => { :thumb => "" },
  :convert_options => { 
    :thumb => "-gravity Center -crop 500x500+0+0 +repage -resize 100x100^" },
  :default_style => :thumb
8 голосов
/ 25 февраля 2013

Только что наткнулся на этот ответ, подумал, что я опубликую его, так как теперь есть более простой способ достичь желаемого результата, просто используя опцию #:

has_attached_file :image,  
  :styles => { :thumb => "100x100#" },
  :default_style => :thumb
...