2013-04-09 21 views
2

如何將緩衝圖像轉換爲文件對象。 我的函數實際上需要返回一個文件對象。 imgscalr調整大小函數在resizing.so之後返回BufferedImage如何將其轉換爲文件對象。在java中使用imgscalr API調整圖像大小

+0

BufferedImage表示內存中的解碼圖像,任何Java圖像API都可以與之交互(這就是imgscalr使用它的原因) - 如果需要該圖像數據的文件表示,則需要對原始圖像信息進行編碼並在獲取文件引用之前將其作爲文件存儲在磁盤上。在這種情況下,@ Doorknob的例子是完全正確的。寫出文件不僅僅是創建文件本身,它還通過ImageWriter編碼器運行圖像數據來創建一個圖像文件(我們知道它們; JPG,PNG等) – 2013-04-10 14:43:42

回答

2

這裏是寫一個PNG文件的例子:

ImageIO.write(yourImage, "PNG", "yourfile.png"); 

您必須導入ImageIOjavax.imageio)第一,但是。

然後,您可以通過new File("yourfile.png");獲取圖像的File對象。

你可以把它放在一個易於使用的功能;這裏是一個例子:

public File imageToFile(BufferedImage img, String fileName) { 
    if (!(fileName.endsWith(".png"))) fileName += ".png"; 
    ImageIO.write(img, "PNG", filename); 
    return new File(fileName); 
} 

Here is a link給文檔。

不能不保存文件對象...嗯,一個文件。不過,您可以將它放在臨時目錄中,並在完成使用後將其刪除。

+0

問題是我不想首先保存圖像。 – user1474089 2013-04-09 12:58:17

+0

@ user1474089那麼你如何獲得一個不存在的文件的'File'? – Doorknob 2013-04-09 12:59:04

+0

這就是我想知道是否存在這樣做的一種方式。 – user1474089 2013-04-09 13:03:25