java压缩image图片并转为byte[]格式并解压
时间: 2023-12-16 11:02:59 浏览: 84
下面是一个示例代码,演示如何使用Java将图片压缩成ZIP格式、将ZIP格式的文件解压缩,并将解压缩后的图片转换为byte[]格式:
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ImageZip {
public static void main(String[] args) throws Exception {
String srcFile = "src.jpg";
String zipFile = "src.zip";
String destFile = "dest.jpg";
// 压缩图片
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
FileInputStream fis = new FileInputStream(srcFile);
ZipEntry entry = new ZipEntry(srcFile);
zos.putNextEntry(entry);
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
fis.close();
zos.close();
fos.close();
System.out.println("图片压缩成功!");
// 解压图片并转换为byte[]格式
FileInputStream fis2 = new FileInputStream(zipFile);
ZipInputStream zis = new ZipInputStream(fis2);
entry = zis.getNextEntry();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((len = zis.read(buffer)) > 0) {
baos.write(buffer, 0, len);
}
byte[] imageBytes = baos.toByteArray();
baos.close();
zis.closeEntry();
zis.close();
fis2.close();
System.out.println("图片解压成功并转换为byte[]格式!");
// 将byte[]格式的图片写入文件
FileOutputStream fos2 = new FileOutputStream(destFile);
fos2.write(imageBytes);
fos2.close();
System.out.println("图片写入文件成功!");
}
}
```
需要注意的是,上述示例代码中的压缩和解压缩仅适用于单个图片文件。如果需要处理多个文件或文件夹,需要进行相应的修改。另外,在实际应用中,需要对异常情况进行处理。
阅读全文