package com.dji.sample.media.util; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.util.List; import java.util.Objects; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class UnZipPhotoUtil { public static void downloadAndSaveImages(List urls, String outputFolder) throws IOException { int count = 0; for (String imageUrl : urls) { try { // 下载图片 URL url = new URL(imageUrl); BufferedImage image = ImageIO.read(url); // 保存图片 File outputfile = new File(outputFolder, "image_" + (count++) + ".jpg"); ImageIO.write(image, "jpg", outputfile); System.out.println("Saved: " + outputfile.getAbsolutePath()); } catch (IOException e) { System.err.println("Failed to download image: " + imageUrl); e.printStackTrace(); throw e; } } } public static void zipFolder(String srcFolder, String destZipFile) throws IOException { try (FileOutputStream fos = new FileOutputStream(destZipFile); ZipOutputStream zos = new ZipOutputStream(fos)) { File srcFile = new File(srcFolder); for (File file : Objects.requireNonNull(srcFile.listFiles())) { try (FileInputStream fis = new FileInputStream(file)) { ZipEntry zipEntry = new ZipEntry(file.getName()); zos.putNextEntry(zipEntry); byte[] bytes = new byte[1024]; int length; while ((length = fis.read(bytes)) >= 0) { zos.write(bytes, 0, length); } zos.closeEntry(); } catch (IOException e) { System.err.println("Failed to zip file: " + file.getPath()); e.printStackTrace(); throw e; } } } } public static void cleanUp(String folderName) { File folder = new File(folderName); deleteFolder(folder); } public static void deleteFolder(File folder) { File[] files = folder.listFiles(); if (files != null) { for (File f : files) { if (f.isDirectory()) { deleteFolder(f); } else { f.delete(); } } } folder.delete(); } }