Je tente de lire dans un flux et d'enregistrer les images lues dans un fichier zip car cela va durer plusieurs jours et générer beaucoup trop de fichiers individuels.Comment enregistrer des images dans un fichier zip
J'ai maintenant un problème où je semble être incapable d'enregistrer des images dans un fichier zip. Le fil de travail que j'ai construit pour cela est ci-dessous. Je suis sûr que l'image est à l'ImageIO.write. Le résultat à la fin est cependant un fichier zip de jpgs vides. Je me demande si ImageIO n'écrit pas de propriété pour ZipOutputStream.
Merci pour votre aide.
public class ZipSaveWorker implements Runnable{
public static ZipOutputStream out=null;
BufferedImage myImage;
private static int counter=0;
public void run() {
ZipEntry entry=new ZipEntry("video"+counter+".jpg");
counter++;
try {
out.putNextEntry(entry);
ImageIO.write(myImage, ".jpg", out);
} catch (IOException ex) {
Logger.getLogger(ZipSaveWorker.class.getName()).log(Level.SEVERE, null, ex);
}
}
public ZipSaveWorker(BufferedImage image)
{
if (out==null)
{
try {
out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(new File("images" + File.separator + "video.zip"))));
} catch (FileNotFoundException ex) {
Logger.getLogger(ZipSaveWorker.class.getName()).log(Level.SEVERE, null, ex);
}
counter=0;
}
myImage=image;
}
public static void closeStream()
{
try {
out.flush();
out.close();
} catch (IOException ex) {
Logger.getLogger(ZipSaveWorker.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Je vais essayer et voir si cela fonctionne ce soir. Merci. – Mimyck