我在將文件bufferedimage寫入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()
印刷:
[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 d在不使用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;
}
而且這個工作絕對沒問題。
爲什麼它不能與ImageIO一起使用?
它的工作!謝謝 – JAVAGeek 2012-07-17 21:14:10