Изменение размера изображения с помощью mini_magick - PullRequest
2 голосов
/ 05 ноября 2011

Мой сервис имеет как веб-версию, так и версию для iPhone.На iPhone мы гарантируем, что пользователи отправляют квадратную версию, обрезая ее при загрузке.Мы также разрешаем загрузку на веб-сайт, но у нас нет такой функции.

Как таковой, я хотел бы масштабировать любое загруженное изображение в область 612 * 612.Каков наилучший способ сделать это?

Я использую Ruby / mini_magick

1 Ответ

9 голосов
/ 06 ноября 2011

Вы бы просто использовали метод 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 , чтобы позволить вашим веб-пользователям обрезать свои загруженные изображения, чтобы уместить их в квадрат.

...