Problema imageIO

Iniciado por smasher666, 26 Octubre 2010, 20:18 PM

0 Miembros y 2 Visitantes están viendo este tema.

smasher666

Hola,

estamos haciendo un programa que de momento consiste en un GUI que abre un fichero zip que contiene imagenes en .png y las guarda todas juntas en un mismo fichero dentro de un gzip en formato jpeg, el problema es que al leerlo no podemos identificar las diferentes imagenes del unico fichero de dentro del gzip.

Aqui os dejo el codigo haber si podeis encontrar alguna solucion a este "Bug".

public int saveAsGzip(String pathFichero) throws FileNotFoundException, IOException{

        FileOutputStream fos = new FileOutputStream(pathFichero);
    GZIPOutputStream gzip = new GZIPOutputStream(fos);

        Iterator ite = imagenes.iterator();
        while(ite.hasNext()){
           
            Imagen img = (Imagen) ite.next();
            BufferedImage temp=img.getBufferedImagen();
            ImageIO.write(temp, "JPEG", gzip);
             
       


        }
        gzip.finish();
        gzip.close();
        fos.flush();
       fos.close();

        return 1;
    }
    public int loadAsGzip(String pathFichero) throws FileNotFoundException, IOException{

        FileInputStream fos = new FileInputStream(pathFichero);
    GZIPInputStream gzip = new GZIPInputStream(fos);
        int numeroImagen=0;
        BufferedImage img;
        boolean bol = false;
       

            while(!bol){
                img=ImageIO.read(gzip);
               
                System.out.println(img);
                if (img == null)
                    bol = true;
            }
         




        gzip.close();

        fos.close();

        return 1;
    }

Debci

No es un bug, es no conocer la manera jeje (De buenas lo digo  ;))
Mira, que se sepa no puedes leer en formatos nativos de java un archivo, pues simplemente tienes bytes, no objetos java.
Tendrás que identificar las cabeceras o sacar todos los objetos de forma standrad y convertirlos en imagen.

Saludos

smasher666

imageIO guarda una cadena de bits correspondientes a una imagen en JPEG, e imageIO carga lo que seria un JPEG. El problema es que el profesor tambien lo tiene asi y no sabemos porque no funciona, ( A el si)

Gracias por la indicacion de todas maneras