/*** 图片设置圆角
*@paramsrcImage
*@paramradius
*@paramborder
*@parampadding
*@return*@throwsIOException*/
public static BufferedImage setRadius(BufferedImage srcImage, int radius, int border, int padding) throwsIOException{int width =srcImage.getWidth();int height =srcImage.getHeight();int canvasWidth = width + padding * 2;int canvasHeight = height + padding * 2;
BufferedImage image= newBufferedImage(canvasWidth, canvasHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D gs=image.createGraphics();
gs.setComposite(AlphaComposite.Src);
gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
gs.setColor(Color.WHITE);
gs.fill(new RoundRectangle2D.Float(0, 0, canvasWidth, canvasHeight, radius, radius));
gs.setComposite(AlphaComposite.SrcAtop);
gs.drawImage(setClip(srcImage, radius), padding, padding,null);if(border !=0){
gs.setColor(Color.GRAY);
gs.setStroke(newBasicStroke(border));
gs.drawRoundRect(padding, padding, canvasWidth- 2 * padding, canvasHeight - 2 *padding, radius, radius);
}
gs.dispose();returnimage;
}/*** 图片设置圆角
*@paramsrcImage
*@return*@throwsIOException*/
public static BufferedImage setRadius(BufferedImage srcImage) throwsIOException{int radius = (srcImage.getWidth() + srcImage.getHeight()) / 6;return setRadius(srcImage, radius, 2, 5);
}/*** 图片切圆角
*@paramsrcImage
*@paramradius
*@return
*/
public static BufferedImage setClip(BufferedImage srcImage, intradius){int width =srcImage.getWidth();int height =srcImage.getHeight();
BufferedImage image= newBufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D gs=image.createGraphics();
gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
gs.setClip(new RoundRectangle2D.Double(0, 0, width, height, radius, radius));
gs.drawImage(srcImage,0, 0, null);
gs.dispose();returnimage;
}