JAVA从文件目录读取图片,压缩图片大小
时间: 2024-09-24 14:21:19 浏览: 31
在Java中,读取图片并对其进行压缩,通常需要借助于`java.io`包处理文件I/O操作,以及`java.awt.image.BufferedImage`和`java.util.zip`包来进行图像数据的读取和压缩。这里是一个基本步骤的示例:
1. **读取图片**:
使用`BufferedReader`从指定路径读取文件内容,然后使用`ImageIO.read()`方法将字节流转换成`BufferedImage`对象。
```java
File file = new File("path_to_your_image.jpg");
BufferedReader reader = new BufferedReader(new FileReader(file));
InputStream inputStream = new FileInputStream(file);
BufferedImage image = ImageIO.read(inputStream);
```
2. **压缩图片**:
可以通过`javax.imageio.ImageIO`中的`createJPEGImage()`方法创建一个新的压缩版的`BufferedImage`,并设置所需的压缩质量。例如,高质量为1.0,低质量可能是0.5。
```java
int compressionQuality = 0.8; // 压缩比例
BufferedImage compressedImage = ImageIO.createJPEGImage(image, null, new JPEGImageWriterParams(null).setCompressionMode(JPEGImageWriterParams.MODE_EXACT));
```
3. **保存压缩后的图片**:
使用`ImageIO.write()`方法将压缩后的`BufferedImage`写入新的文件。
```java
File outputfile = new File("compressed_" + file.getName());
OutputStream outputStream = new FileOutputStream(outputfile);
ImageIO.write(compressedImage, "jpg", outputStream);
```
阅读全文