私はAndroid上にクライアントアプリケーションを、C#にはサーバーを持ち、ソケットを介して通信します。 リクエストサーバーは、バイト[]、 に変換されたイメージを送信しますが、イメージをデバイス上で再びイメージにデコードする方法はありますか?BufferReaderから正確なバイトを取得するには?
私はすでにこのコードを発見しました:
Bitmap bmp=BitmapFactory.decodeByteArray(b,0,b.length);
image.setImageBitmap(bmp);
そしてここでは、クライアントのコードの一部です:
private void connectSocket(String a){
try {
InetAddress serverAddr = InetAddress.getByName("192.168.1.2");
Socket socket = new Socket(serverAddr, 4444);
BufferedReader in = null;
try {
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println(message);
String text = "";
image = (ImageView)findViewById(R.id.imageView1);
while ((text = in.readLine()) != null) {
byte[] b = in.readLine().getBytes();
Bitmap bmp=BitmapFactory.decodeByteArray(b,0,b.length);
image.setImageBitmap(bmp);
}
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
socket.close();
}
} catch (UnknownHostException e) {
Log.e("TCP", "C: UnknownHostException", e);
e.printStackTrace();
} catch (IOException e) {
Log.e("TCP", "C: IOException", e);
e.printStackTrace();
}
}
正確受け取ったバイトはイメージでそれらを変換するために取得するには、どのように?
ありがとう、私は既に解決策を見つけました – 3Gee
@ 3Gee私は似たような解決策を探しています。あなたのソリューションに私を指摘できますか? – zeeshan
@zeeshanそれは非常にずっと前に、私は古いコードでいくつかの掘り下げを行った、私はこれが解決策だと思う: 'byte [] buffer = new byte [16200]; //イメージ配列からイメージを抽出する int size = is.read(buffer); バイト[]バッファ2 =新しいバイト[サイズ];for(int g = 0; g
3Gee