2013-02-06 109 views
0

我有一個來自字節數組的緩衝圖像。我如何將圖像變成一個圓圈?作物?我不想轉了一圈,我想原單形象成爲圓形和顯示Bufferedimage成圓形

def bufferedImage = imgSvc.convertByteArrayToBufferedImage(crop.image) 
+0

圓形裁剪圖像我不會發布這作爲一個答案,看到它可能不是最好的解決辦法,但使用半徑爲畢達哥拉斯測量和複製像素圖像到半徑範圍內的所有其他圖像都可以工作,但可能是馬虎。你將不得不使用BufferedType.TYPE_ARGB。當然包括alpha透明度。 – 2013-02-06 16:38:07

回答

0

這可以幫助

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

如果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