2012-07-17 19 views
5

फ़ाइल करने के लिए buffered छवि लिखने में असमर्थ है मुझे jpg फ़ाइल में bufferedimage लिखने में कुछ समस्या है।ImageIO

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(); 
     } 
    } 
यहाँ

क्या buff.toString() द्वारा मुद्रित हो जाता है:: मेरे विधि में , मैं मैं क्या कर रहा हूँ है एक bufferedimage पैरामीटर के रूप में जो मैं एक फ़ाइल

यहाँ में लिखने की ज़रूरत हो रही है

[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 

कार्यक्रम किसी भी बिना किसी अपवाद के ठीक चलाता है, लेकिन उत्पन्न jpg फ़ाइल आकार 0 bytes

मैं trie है छवि का उपयोग किए बिना डी लेखन छवि:

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; 
    } 

और यह बिल्कुल ठीक काम करता है।

यह छविियो के साथ क्यों काम नहीं कर रहा है?

उत्तर

8

अपने प्रारूप नाम से . हटाएं।

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

इसकी कार्यप्रणाली! धन्यवाद – JAVAGeek

4

मानो या न मानो, यह सिर्फ इस ".jpg" है, इसे बदल "jpg" करने के लिए और यह ठीक काम करेंगे।

मुझे एक ही समस्या थी, लेकिन मैंने ImageIO पर देखा, और यह link पाया।