Bufferedimage成圆形

时间:2013-02-06 14:46:49

标签: java grails image-processing image-manipulation

我有一个来自字节数组的bufferedimage。如何将图像制成圆圈?作物?我不想要一个圆圈,我希望原始图像变成圆形并显示

 def bufferedImage = imgSvc.convertByteArrayToBufferedImage(crop.image)

3 个答案:

答案 0 :(得分:2)

如果bufferedImage为平方,则使用此代码:

int width = bufferedImage.getWidth();
BufferedImage circleBuffer = new BufferedImage(width, width, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = circleBuffer.createGraphics();
g2.setClip(new Ellipse2D.Float(0, 0, width, width));
g2.drawImage(bufferedImage, 0, 0, width, width, null);

您在circleBuffer

中获得了圆形裁剪图像

答案 1 :(得分:1)

这可以帮助

    g.setClip(new Ellipse2D.Float(x, y, w, h));
    g.drawImage(yourBufferedImage, x, y, w, h, null);

答案 2 :(得分:0)

您可以使用Graphics类的setClip()方法将图形上下文的绘图区域限制为特定区域。这样做的缺点是这种裁剪不会消除锯齿。

有一些更高级的技巧可以获得更好看的效果,请参阅以下问题的答案:

Drawing a part of an image (Java)

How to make a rounded corner image in Java