2014-03-13 50 views
3

我要救一個BufferedImage(名爲 「結果」):的Java ImageIO.write返回false

boolean bres = ImageIO.write(result, ".png", new File(saveP)); 

但佈雷斯總是空。

ImageIO.getWriterFormatNames() 

的回報是:

jpg BMP bmp JPG jpeg wbmp png JPEG PNG WBMP GIF gif 

我應該能夠保存爲PNG的。

而BufferedImage的類型是 「2」

[email protected]: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 720 height = 576 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0 

類型2是 「ARGB」。

爲什麼我不能保存BufferedImage?

編輯:saveP = 「ex000567.png」

+0

你能提供結果和saveP的細節和變化png格式爲PNG – Kick

+0

所有結果的細節都在對象「的BufferedImage @ 137695c」 – user3363881

回答

7
private static void savePNG(final BufferedImage image, final String path){ 
     try { 
      RenderedImage rendImage = image; 
      ImageIO.write(rendImage, "PNG", new File(path)); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

測試此功能。這個爲我工作。

重要的變化是,以ImageIO.write第二個參數是從".png"改爲"PNG"(小寫"png"也將工作),指的ImageIO.getWriterFormatNames()輸出爲有效名稱。

+0

嘿:) 感謝,這作品。 但是爲什麼? – user3363881

+0

圖像的格式問題 – Kick

1

FormateName"png"沒有".png"