2010-08-24 43 views
0

我有一個BufferedImage實例:(僅一個例子)可以從BufferedImage獲取原始圖像嗎?

BufferedImage image = ImageIO.read(new URL("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png")); 

現在,我只知道用

ImageIO.write(image,"jpg", file); //or ImageIO.write(image,"png", file); 

來此BufferedImage保存到一個文件,但這個文件是ZIPed,不等於原圖片大小。

可以從BufferedImage實例獲取原始圖像ByteArray或OutputStream嗎?

回答

2

總之:沒有。

Java將圖像轉換爲內部表示並在讀取和寫入時轉換文件。

最好的辦法是讀取字節數組(或臨時文件)中的文件,從那裏創建圖像。並保存文件時,回到原始bytearray或tempfile。

+0

嗎?好難過 :( – Koerr 2010-08-24 07:29:52

0
public static Image toImage(BufferedImage bufferedImage) { 
    return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource()); 
} 
+0

但如何將圖像保存到文件?像也使用'ImageIO.write' http://snipplr.com/view/9891/store-image-to-file/ – Koerr 2010-08-24 07:28:38

+0

那麼沒有辦法與'ImageIO.write'一起使用'Image'。您可以用「ImageIO」代替Peter Tillemans的建議 – 2010-08-24 07:36:43

相關問題