2012-07-17 28 views
5

Tengo problemas para escribir la imagen en el archivo jpg. en mi método, que estoy recibiendo un bufferedimage como parámetro que tengo que escribir en un archivo-ImageIO no puede escribir una imagen en el archivo

Esto es lo que estoy haciendo:

public boolean writeToFile(BufferedImage buff,String savePath) { 

     try { 

      System.out.println(buff.toString()); 
      ImageIO.write(buff, ".jpg", new File(savePath)); 
      return true; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

aquí es lo que se imprime por buff.toString():

[email protected]: type = 1 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 IntegerInterleavedRaster: width = 1024 height = 172 #Bands = 3 xOff = 0 yOff = 0 dataOffset[0] 0 

programa funciona muy bien sin ninguna excepción, pero el tamaño del archivo JPG generado es 0 bytes

i trie d escritura de imagen sin utilizar ImageIO:

public boolean writeToFile(BufferedImage buff,String savePath) { 



     try { 

      System.out.println("got image : " + buff.toString()); 
      Iterator iter = ImageIO.getImageWritersByFormatName("jpeg"); 
      ImageWriter writer = (ImageWriter)iter.next(); 
      ImageWriteParam iwp = writer.getDefaultWriteParam(); 


      iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); 
      iwp.setCompressionQuality(.5f); 


      File file = new File(savePath); 
      FileImageOutputStream output = new FileImageOutputStream(file); 
      writer.setOutput(output); 
      IIOImage image = new IIOImage(buff, null, null); 
      writer.write(null, image, iwp); 
      writer.dispose(); 

      return true; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return false; 
    } 

Y esto funciona absolutamente bien.

¿Por qué no funciona con ImageIO?

Respuesta

8

Elimine el . del nombre de su formato.

ImageIO.write(buff, "jpg", new File(savePath)); 
+0

Its Working! Gracias – JAVAGeek

4

creas o no, es sólo esta ".jpg", cambiarlo a "jpg" y no tendrán ningún problema.

Tuve el mismo problema, pero miré el ImageIO, y encontré este link.

Cuestiones relacionadas