MiniMagick: вырезать круг из квадратного изображения

Мне нужно преобразовать квадратное изображение в круглое изображение с MiniMagick.

Я знаю, что есть с ImageMagick:

convert -size 300x300 xc:transparent -fill "image.png" -draw "circle 240,90 290,90" -crop 100x100+190+40 +repage circle1.png

Я попытался перевести:

img.combine_options do |c|
  c.draw "circle 240,90 290,90"
  c.crop "100x100+190+40"
  c.repage.+
end

Я получаю этот материал, черный круг с моим большим носом в качестве фонового изображения:

enter image description here

Если кто-то знает, как правильно это перевести... пожалуйста!

Ответ 1

Просто используйте Metal:

require 'mini_magick'

MiniMagick::Tool::Convert.new do |cvrt|
 cvrt.size '300x300'
 cvrt << 'xc:transparent'
 cvrt.fill 'image.png'
 cvrt.draw "circle 240,90 290,90"
 cvrt.crop '100x100+190+40'
 cvrt.repage.+
 cvrt << 'circle.png'
end

Я лично никогда не пытаюсь вспомнить все эти названия отечественных методов и всегда использую подход с металлическим сердечником.

Ответ 2

Это для загрузки веб-сайта? Если это так, вам, вероятно, лучше всего использовать CSS, чтобы превратить изображение в круг, это сэкономит много обработки сервера, и если вы почувствуете, что в будущем вы хотели бы вернуться к квадратному изображению, это намного проще чем индивидуальное изменение изображений обратно на квадратные версии, это может быть только одна строка кода CSS.