@Grab(group='org.codehaus.griffon', module='jsilhouette-geom', version='0.4') import java.awt.* import java.awt.image.* import java.io.* import javax.imageio.* import org.codehaus.griffon.jsilhouette.geom.* // 画像を三角形に切り取る def img = ImageIO.read(new File("sf2.jpg")) def img2 = new BufferedImage( img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB ) def gr = img2.createGraphics() gr.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON ) def width = 180 def angle = 0 def triangle = new Triangle((float)img.getWidth()/2-width/2, (float)img.getHeight()/2+width/3, (float)width, (float)angle, true ) gr.setColor(new Color(1F, 1F, 1F, 1F)) gr.fill(triangle) // 切り取り gr.setComposite(AlphaComposite.SrcIn) gr.drawImage(img,0,0,null) gr.dispose() ImageIO.write(img2, "png", new File("cuttriangle.png"))
元画像
出力画像
動作環境
groovy 1.8.6, JDK7 update4