2012-09-27 28 views
0

我已經編寫了一個小型TCP客戶端來檢索各種數據。它適用於文本,但我不知道如何實現圖像處理。目前,輸入數據存儲在ArrayList<String>用Java中的原始數據創建映像

public ArrayList<String> sendSelector(String selector, String host, int port) throws IOException { 
    socket = new Socket(host, port); 
    out = new PrintWriter(socket.getOutputStream(), true); 
    in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

    out.println(encodePercent(selector) + CRLF); 

    ArrayList<String> lines = new ArrayList(); 
    String line; 

    while ((line = in.readLine()) != null) { 
     if (line.equals(".")) 
      break; 

     lines.add(line); 
    } 

    out.close(); 
    in.close(); 
    socket.close(); 

    return lines; 
} 

如何創建一個ImageBufferedImage出存儲在ArrayList<String> GIF或JPEG的? (或完全是我在黑暗中必須使用不同的數據結構?)

+0

您是從服務器檢索GIF或JPEG文件,還是以某種其他格式的圖像數據? –

+0

我從服務器獲取GIF或JPEG。 – laserbrain

回答

1

一旦你打開來自服務器的輸入流,使用ImageIO.read(InputStream)創建圖像:

public BufferedImage sendSelector(String selector, String host, int port) throws IOException { 
    socket = new Socket(host, port); 
    try { 
     out = new PrintWriter(socket.getOutputStream(), true); 
     out.println(encodePercent(selector) + CRLF); 
     in = socket.getInputStream(); 
     return ImageIO.read(in); 
    } finally { 
     socket.close(); // closes in and out as well 
    } 
} 

爲了更好的效率,你可能在BufferedInputStream中包裝in

+0

謝謝。工作正常。 – laserbrain