如何通过java graphics 2d将图片剪切成圆形?我希望结果与objectfit类似:css中的cover
我想用java graphics 2d将图片切割成圆形,但结果并不令人满意。我希望最终的图片与css中的“对象匹配:封面”类似
这是原图 original pic
下面是我的代码和最终结果
BufferedImage testImage = ImageIO.read(new File("/Users/huangruixiang/Desktop/test.png"));
BufferedImage formatAvatarImage = new BufferedImage(200, 200, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D graphics = formatAvatarImage.createGraphics();
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, 200, 200);
graphics.setClip(shape);
graphics.drawImage(testImage, 0, 0, 200, 200, null);
graphics.dispose();
ImageIO.write(formatAvatarImage,"png",new File("/Users/huangruixiang/Desktop/circle.png"));
我想要的效果与此类似 Expected effect
# 1 楼答案
给你
你必须使用与你使用的不同的
drawImage
方法下面是完整的可运行代码