2011-08-23 14 views
-3

我試圖讀取特定像素的RGB,但我得到IOException。
我找不到任何共振,所以我試圖從這個網站運行程序 link 但即時通訊仍然得到IOException。
所以這可能是因爲JRE或我的IDE是Eclipse?獲取IOException,無法找到任何原因

import java.io.*; 
import java.awt.*; 
import javax.imageio.ImageIO; 
import java.awt.image.BufferedImage; 

public class GetPixelColor 
{ 
    public static void main(String args[]) throws IOException{ 
    File file= new File("rockface.jpg"); 
    BufferedImage image = ImageIO.read(file); 
    // Getting pixel color by position x=100 and y=40 
    int clr= image.getRGB(100,40); 
    int red = (clr & 0x00ff0000) >> 16; 
    int green = (clr & 0x0000ff00) >> 8; 
    int blue = clr & 0x000000ff; 
    System.out.println("Red Color value = "+ red); 
    System.out.println("Green Color value = "+ green); 
    System.out.println("Blue Color value = "+ blue); 
    } 
} 
+1

零代碼或上下文無人可以幫忙。 –

+0

給我們您的代碼和錯誤,我們可以提供幫助,否則有幾十億個原因可能會導致IOException。 – Nicholas

回答

0

我不記得確切的細節,但我聽說其他人在使用Eclipse時會詢問IOExceptions。

這可能是您的文件不在您的項目的運行目錄中。我不記得eclipse是如何設置的,但是嘗試將文件移動到保存.class文件的任何文件夾中,或者只是另外播放文件的位置。

2

這可能是因爲你鏈接的程序引用的圖像,你沒有在你的路徑。

添加以下行文件的構造後,檢查文件是否你正在尋找存在:

File file= new File("rockface.jpg"); 
if (file.exists()){ 
    //OK 
}else{ 
    //you should have I/O Exception when the code reach ImageIO.read(file); 

} 
0

一個解決方案是指定的絕對路徑(假設你使用的是Windows,這將是C :. ... \等)。否則,你將不得不使用相對路徑。
要知道在哪個文件夾中的應用是搜索,你可以使用:

System.getProperty( 「user.dir來」);

1

據的JavaDoc,這個(可能)是拋IOException的方法:

ImageIO#read(File f)

從文檔:

拋出:

拋出:IllegalArgumentException - 如果輸入爲空。

IOException - 如果在讀取過程中發生錯誤。

這很可能是由於無法找到您指定的File。嘗試將其移動到類路徑或項目根目錄。

相關問題