java将图片变成圆角_Java 图片设置圆角(设置边框,旁白)

/*** 图片设置圆角

*@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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值