У меня есть клиентское приложение на Android и сервер на C #, они общаются через сокет.
По запросу сервер отправляет изображение, преобразованное в байт [],
но как снова декодировать его на моем устройстве в изображение?
Я уже нашел этот код:
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();
}
}
Итак, как получить точные полученные байты, чтобы преобразовать их в изображение?