0

さまざまなデータを取得するための小さなTCPクライアントを作成しました。テキストには問題なく機能しますが、画像処理を実装する方法がわかりません。現時点では、受信データはArrayList<String>:に保存されています。

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

に保存されているGIFまたはJPEGからImageまたはを作成するにはどうすればよいですか?(または、私は完全に暗闇の中で、異なるデータ構造を使用する必要がありますか?)BufferedImageArrayList<String>

4

1 に答える 1

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

効率を高めるために、 でラップinすることもできますBufferedInputStream

于 2012-09-27T15:38:43.737 に答える