2013-11-23 143 views
3

我正在構建一個壓縮給定圖像並將其保存爲JPEG的程序。這是錯誤消息我得到:javax.imageio.IIOException:無法讀取輸入文件

Exception in thread "main" javax.imageio.IIOException: Can't read input file! 
at javax.imageio.ImageIO.read(Unknown Source) 
at JPEGCompression.main(JPEGCompression.java:23) 

這裏是我的主:

public class JPEGCompression { 

public static void main(String[] args) throws IOException{ 

    String imageFile = "/tmp/garden.png"; 
    BufferedImage i = ImageIO.read(new File(imageFile)); // this line produces the error 
    showImage("Original Image", i); 

    compressAndShow(i, 0.7f); 


} 
+3

你確定你需要圖像路徑上的前導斜槓嗎? – Sinkingpoint

+0

@Quirliom哇,真是那麼簡單!這工作,謝謝:) – pacman4565

+0

請添加一個問題的答案或接受下面的答案,如果它有幫助。現在這對其他人不是很有幫助。 – Gray

回答

-1

你不檢查文件是否存在/有該文件的權限,這將是我的第一個調試步驟。

嘗試以下方法:String imageFile = "./tmp/garden.png";

我總是把我的.斜槓前告訴它我說的是當前目錄,但我則需要不覺得做。

+3

'/'和'。/'意味着完全不同的東西,'。/'可以簡單地刪除,僅僅是多餘的。 – EJP

0

我也遇到了這個問題。答案是圖片的模型是錯誤的。所以你應該把圖片的模型從'CMYK'改爲'RGB'。 CMYK用於打印機,RGB用於計算機。你可以使用photoshop或imageMagick來完成它。