2013-05-11 73 views
0

我試圖從服務器加載圖像,用下面的代碼:如何檢查一個BufferedImage是否在java中完成?

BufferedImage img;  
do{ 
    try { 
     URL url = new URL(myUrl); 
     img = ImageIO.read(url); 
    }catch (IOException e){} 
}while(img == null); 

的想法是,直到圖像發現,以保持cheking源,因爲它會被上傳,而代碼仍在執行。問題是,當圖像仍然被加載到服務器時,代碼停止,顯示圖像的一小部分,因爲沒有loger null,但它仍然不完整,所以如何檢查圖像是否完整?

+2

它看起來像什麼應該被固定在服務器:直到圖像已經完全上傳,應以404未找到響應。只有這樣,它才能開始提供服務。 – 2013-05-11 21:27:16

+0

重做相同的操作,而它一直拋出你不斷忽略的'IOException'是完全無用的。如果它第一次不起作用,爲什麼它會在第二次和隨後的時間裏工作? (a)打印異常的堆棧跟蹤並(b)在此處發佈?將其編輯到您的帖子中。 – EJP 2013-05-12 05:34:11

回答

0

從applet中我處理圖像加載這樣的:

MediaTracker mediaTracker = new MediaTracker(this); 
Image image = getImage(getDocumentBase(), "image-filename.png"); 
mediaTracker.addImage(image, 0); 
try { 
    mediaTracker.waitForAll(); 
} catch (InterruptedException interuptedException) { 
    interuptedException.printStackTrace(); 
}