/**
* 生成圆角图标
* @author Master.Pan
* @date 2016年5月11日 上午9:56:37
* @param image
* @param cornerRadius 圆角半径
* @return
*/
public static BufferedImage makeRoundedCorner(BufferedImage image, int cornerRadius) {
int w = image.getWidth();
int h = image.getHeight();
BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = output.createGraphics();
g2.setComposite(AlphaComposite.Src);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(Color.WHITE);
g2.fill(new RoundRectangle2D.Float(0, 0, w, h, cornerRadius, cornerRadius));
g2.setComposite(AlphaComposite.SrcAtop);
g2.drawImage(image, 0, 0, null);
g2.dispose();
return output;
}
使用:
BufferedImage image = ImageIO.read(new File("原图片路径"));
BufferedImage rounded = makeRoundedCorner(image, 40);
ImageIO.write(rounded, "png", new File("圆角图片存放路径"));