java如何增加图片
使用ImageIO类读取和写入图片
ImageIO类是Java标准库中用于处理图片的常用工具。通过ImageIO.read()方法可以读取图片文件,ImageIO.write()方法可以保存图片。以下是一个简单的示例:

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ImageExample {
public static void main(String[] args) {
try {
// 读取图片
BufferedImage image = ImageIO.read(new File("input.jpg"));
// 处理图片(例如调整大小或修改像素)
// 保存图片
ImageIO.write(image, "jpg", new File("output.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Graphics2D绘制图片
如果需要绘制图片或添加文字、图形等元素,可以使用Graphics2D类。以下示例展示了如何在现有图片上绘制一个矩形并保存:

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class DrawOnImage {
public static void main(String[] args) {
try {
BufferedImage image = ImageIO.read(new File("input.jpg"));
Graphics2D graphics = image.createGraphics();
// 设置绘制颜色和样式
graphics.setColor(Color.RED);
graphics.setStroke(new BasicStroke(5));
// 绘制矩形
graphics.drawRect(50, 50, 200, 200);
// 释放资源
graphics.dispose();
// 保存图片
ImageIO.write(image, "jpg", new File("output.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用第三方库处理图片
对于更复杂的图片处理需求,可以使用第三方库如Apache Commons Imaging或Thumbnailator。以下是使用Thumbnailator调整图片大小的示例:
import net.coobird.thumbnailator.Thumbnails;
public class ResizeImage {
public static void main(String[] args) {
try {
Thumbnails.of("input.jpg")
.size(300, 300)
.toFile("output.jpg");
} catch (IOException e) {
e.printStackTrace();
}
}
}
图片格式转换
如果需要将图片从一种格式转换为另一种格式(如PNG转JPG),可以通过ImageIO实现:
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ConvertImageFormat {
public static void main(String[] args) {
try {
BufferedImage image = ImageIO.read(new File("input.png"));
ImageIO.write(image, "jpg", new File("output.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意事项
- 确保图片路径正确,避免文件读写权限问题。
- 处理大图片时需注意内存消耗,避免
OutOfMemoryError。 - 第三方库可能需要额外依赖,需通过Maven或Gradle引入。
以上方法涵盖了Java中常见的图片处理需求,可根据实际场景选择适合的方式。






