我該如何保存BufferedImage與TYPE_INT_ARGB to jpg?Java ARGB到JPG
程序生成我的形象:
而且它的好,但是當我保存它以這種方式:
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(byteStream);
try {
ImageIO.write(buffImg, "jpg", bos);
// argb
byteStream.flush();
byte[] newImage = byteStream.toByteArray();
OutputStream out = new BufferedOutputStream(new FileOutputStream("D:\\test.jpg"));
out.write(newImage);
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
結果是:
瞭解這是由於alpha層,但不知道如何解決它。 Png格式不適合我,需要JPG。
你試過用白色替換alpha通道嗎? – 2014-09-03 19:07:41
不,我不知道。怎麼樣? – Gwalk 2014-09-03 19:15:15
不相關:當你可以直接寫入一個'FileOutputStream'時,你爲什麼要寫入一個字節數組,然後把這個字節寫入一個文件?相關:像*「BufferedImage JPG錯誤顏色」這樣的關鍵字搜索*會產生一些結果,它似乎在某些情況下發生 – Marco13 2014-09-03 23:28:49