Graphics2D绘制图片居中
时间: 2023-06-29 18:16:47 浏览: 193
要绘制一个居中的图片,可以按照以下步骤进行操作:
1. 获取Graphics2D对象
2. 获取图片的宽度和高度
3. 计算绘制图片的起始坐标
4. 绘制图片
下面是示例代码:
```
// 获取Graphics2D对象
Graphics2D g2d = (Graphics2D) g;
// 获取图片
Image img = ImageIO.read(new File("image.jpg"));
// 获取图片的宽度和高度
int imgWidth = img.getWidth(null);
int imgHeight = img.getHeight(null);
// 计算绘制图片的起始坐标
int x = (getWidth() - imgWidth) / 2;
int y = (getHeight() - imgHeight) / 2;
// 绘制图片
g2d.drawImage(img, x, y, null);
```
在上面的代码中,getWidth()和getHeight()方法是获取当前绘图区域的宽度和高度。计算x和y坐标时,需要将图片宽度和高度分别除以2,然后减去当前绘图区域的宽度和高度的一半,这样就可以保证图片在绘图区域中居中显示。最后,使用drawImage()方法绘制图片即可。
相关问题
java Graphics2D给图片加上黑色边框
在Java中,Graphics2D是一个用于绘制二维图形的高级API。如果你想给一张图片添加黑色边框,可以按照以下步骤操作:
1. **加载图片**:
首先,你需要通过`BufferedImage`类从文件或其他源加载图片。
```java
BufferedImage image = ImageIO.read(new File("path_to_your_image.jpg"));
```
2. **创建一个新的图像容器**:
创建一个新的`BufferedImage`,大小为原图加宽高各加两倍,以便容纳边框。
```java
int width = image.getWidth() + 2; // 边框宽度
int height = image.getHeight() + 2;
BufferedImage borderedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
```
3. **绘制边框**:
使用`Graphics2D`对象的`drawRect()`方法画出新图像的边界,并填充颜色。这里填黑色(0x000000)。
```java
Graphics2D g = borderedImage.createGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, width, height); // 全部填充黑色
// 然后再将原始图像居中绘制到新图像上
g.drawImage(image, 1, 1, null); // (1, 1) 是边框外的起始位置
```
4. **保存结果**:
最后,你可以选择将新的带边框的图片保存到文件或显示出来。
```java
FileOutputStream outputStream = new FileOutputStream("bordered_image.jpg");
borderedImage.writeTo(outputStream);
outputStream.close();
```
阅读全文