2012-09-27 1 views
0

작은 데이터 클라이언트를 작성하여 다양한 데이터를 검색했습니다. 그것은 텍스트에 대해 잘 작동하지만 이미지 처리를 구현하는 방법에 대한 단서가 없습니다. 지금이 순간, 수신 데이터는 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; 
} 

어떻게 내가 ArrayList<String>에 저장된 GIF 또는 JPEG의 밖으로 Image 또는 BufferedImage을 만들 수 있습니까? (또는 어둠 속에서 완전히 I를이고 다른 데이터 구조를 사용할 필요가?)

+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 
    } 
} 

, 당신은 할 수 inBufferedInputStream에 넣으십시오.

+0

감사합니다. 잘 작동합니다. – laserbrain