Вы бы просто использовали метод resize
от MiniMagick, на странице Github есть пример:
https://github.com/minimagick/minimagick
Возможно, у вас есть изображениекак набор байтов в памяти, что-то вроде этого:
image = MiniMagick::Image.read(your_image_bytes)
image.resize('612x612')
scaled_image_bytes = image.to_blob
# Or image.write(filename)
MiniMagick использует стандартные строки геометрии ImageMagick для определения размера и, из тонкого руководства , геометрию WxH
:
Максимальные значения высоты и ширины приведены, соотношение сторон сохранено.
, поэтому при использовании '612x612'
изображение будет масштабировано до площади 612 пикселей при сохранении соотношения сторон.
Вы также можете использовать Jcrop , чтобы позволить вашим веб-пользователям обрезать свои загруженные изображения, чтобы уместить их в квадрат.