我想保存一个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”
答案 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"