java 如何将图片改成圆的
时间: 2023-06-19 16:03:13 浏览: 224
要将图片变成圆形,可以使用Java中的Graphics2D类和Shape类来实现。具体步骤如下:
1. 加载图片,使用ImageIO类的read方法读取图片文件,返回一个BufferedImage对象。
2. 创建一个新的BufferedImage对象,大小与原图片相同。
3. 获取Graphics2D对象,通过createGraphics()方法获取。
4. 创建一个圆形的Shape对象,使用Ellipse2D.Double类的构造方法创建一个圆形。
5. 将圆形设置为Graphics2D对象的剪裁区域,使用setClip()方法。
6. 将原图片绘制在新的BufferedImage对象上,使用drawImage()方法。
7. 将Graphics2D对象的剪裁区域设置为null。
8. 返回新的BufferedImage对象,即为圆形图片。
下面是一个示例代码:
```java
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageUtils {
public static BufferedImage getRoundImage(String imagePath) throws Exception {
BufferedImage srcImage = ImageIO.read(new File(imagePath));
BufferedImage newImage = new BufferedImage(srcImage.getWidth(), srcImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = newImage.createGraphics();
Shape circle = new Ellipse2D.Double(0, 0, srcImage.getWidth(), srcImage.getHeight());
g2d.setClip(circle);
g2d.drawImage(srcImage, 0, 0, null);
g2d.setClip(null);
g2d.dispose();
return newImage;
}
}
```
调用方式:
```java
BufferedImage roundImage = ImageUtils.getRoundImage("image.png");
```
其中,`image.png`为待处理的图片路径。
阅读全文