java将图片变成圆角_Java 图片设置圆角(设置边框,旁白)
时间: 2023-07-29 18:14:59 浏览: 220
Android设置图片圆角的方法
Java 中可以通过 Graphics2D 类的 setClip 方法来实现图片的圆角处理,具体步骤如下:
1. 加载图片,使用 BufferedImage 类的静态方法 read 从文件或者输入流中读取图片。
```
BufferedImage image = ImageIO.read(new File("image.png"));
```
2. 创建一个 BufferedImage 对象,用于绘制圆角图片。
```
BufferedImage roundedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
```
3. 获取 Graphics2D 对象,用于绘制圆角图片。
```
Graphics2D g2 = roundedImage.createGraphics();
```
4. 设置圆角形状,使用 Arc2D 类创建一个圆角矩形形状,然后使用 Graphics2D 对象的 setClip 方法将图片裁剪为圆角矩形。
```
RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, image.getWidth(), image.getHeight(), 20, 20);
g2.setClip(roundRect);
```
5. 绘制圆角图片,使用 Graphics2D 对象的 drawImage 方法将原始图片绘制到裁剪后的圆角矩形中。
```
g2.drawImage(image, 0, 0, null);
```
6. 绘制边框和旁白,使用 Graphics2D 对象的 drawRoundRect 方法绘制圆角矩形边框,使用 drawString 方法绘制旁白。
```
g2.setColor(Color.WHITE);
g2.setStroke(new BasicStroke(5));
g2.drawRoundRect(0, 0, image.getWidth(), image.getHeight(), 20, 20);
g2.setFont(new Font("Arial", Font.BOLD, 20));
g2.drawString("Hello World!", 20, image.getHeight() - 50);
```
7. 释放 Graphics2D 对象,使用 dispose 方法释放资源。
```
g2.dispose();
```
完整的代码示例:
```
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageRounder {
public static void main(String[] args) throws Exception {
BufferedImage image = ImageIO.read(new File("image.png"));
BufferedImage roundedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = roundedImage.createGraphics();
RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, image.getWidth(), image.getHeight(), 20, 20);
g2.setClip(roundRect);
g2.drawImage(image, 0, 0, null);
g2.setColor(Color.WHITE);
g2.setStroke(new BasicStroke(5));
g2.drawRoundRect(0, 0, image.getWidth(), image.getHeight(), 20, 20);
g2.setFont(new Font("Arial", Font.BOLD, 20));
g2.drawString("Hello World!", 20, image.getHeight() - 50);
g2.dispose();
ImageIO.write(roundedImage, "png", new File("rounded.png"));
}
}
```
该示例将图片裁剪为圆角矩形,绘制了白色边框和旁白,并将处理后的图片保存为 rounded.png 文件。
阅读全文