2015-04-08 2 views
11

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

Я знаю, что есть way с 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

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

ответ

4

Просто используйте 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 

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

+0

Я использую его сейчас, спасибо большое! – tchret

+0

@tchret Добро пожаловать. – mudasobwa

0

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

+1

Привет, Алекс, в моем случае CSS не влияет. В том же методе я получаю квадратное изображение от GitHub, я его обволакиваю и вставляю в другое изображение, чтобы получить персонализированную миниатюру – tchret

Смежные вопросы