rmagickを使用して画像から円を切り取りたい。
これが私が達成したいことの例です:
http://studio.imagemagick.org/RMagick/doc/draw.html#circleを使用して円を切り取り、次にclip_pathを使用して円をマスクしたいようですが、ドキュメントはあまり明確ではありません。誰かが私を正しい方向に向けることができるでしょうか?
rmagickを使用して画像から円を切り取りたい。
これが私が達成したいことの例です:
http://studio.imagemagick.org/RMagick/doc/draw.html#circleを使用して円を切り取り、次にclip_pathを使用して円をマスクしたいようですが、ドキュメントはあまり明確ではありません。誰かが私を正しい方向に向けることができるでしょうか?
require 'rmagick'
im = Magick::Image.read('walter.jpg').first
circle = Magick::Image.new 200, 200
gc = Magick::Draw.new
gc.fill 'black'
gc.circle 100, 100, 100, 1
gc.draw circle
mask = circle.blur_image(0,1).negate
mask.matte = false
im.matte = true
im.composite!(mask, Magick::CenterGravity, Magick::CopyOpacityCompositeOp)
im.write 'walter_circle.png'
これは私がImagemagickとphpでそれを行う方法です:
// Canvas the same size as the final image
exec("convert -size 800x533 xc:white white.jpg");
// The mask
exec("convert -size 800x533 xc:none -draw \"fill black circle 400,265 400,50\" write_mask.png");
// Cut the whole out of the canvas
exec("composite -compose Dst_Out write_mask.png white.jpg -matte step.png");
// Put the canvas over the image and trim off excess white background
exec("convert IMG_5745.jpg step.png -composite -trim final.jpg");
あなたはプロセスに従うことができるはずですか?
一時的な画像を後でクリーンアップする-一時的な画像を.miff形式で保存し、後ですべての.miff画像を削除するループを作成する傾向があります。または、そのままにしておくと、一時的な画像に同じ名前を使用すると、コードが実行されるたびに上書きされます。