Java ImageIO.write返回false

时间:2014-03-13 08:42:33

标签: java java-io javax.imageio

我想保存一个BufferedImage(名为“result”):

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”

BufferedImage@137695c: 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”

2 个答案:

答案 0 :(得分: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()的输出1}}表示有效名称。

答案 1 :(得分:1)

FormateName应为"png"而不是".png"