чтение двоичного изображения

#java #android #binary

#java #Android #двоичный

Вопрос:

У меня налажена связь с сокетом.

Теперь мне нужна помощь со следующим:

Мы собираемся отправить изображение на устройство через сокет.

 transmit.framebuffer.rgb_byte will transmit in binary format the following information:
[4 bytes] => image width
[4 bytes] => image height
[< image width> * <image height> * 3 bytes] => RGB in unsigned char format [0, 255]
[3 bytes] "OKn"
  

Как бы мне заставить это работать?..
На данный момент я просто работал с обычным текстом и т.д.,
итак, все это двоичное кодирование для меня ново.

Комментарии:

1. В чем проблема? Используйте (буферизованный) входной поток /(Buffered)OutputStream и запишите байты.

Ответ №1:

Это пример того, как вы могли бы читать данные на стороне клиента:

 out = new ByteArrayOutputStream();
in = new BufferedInputStream(socket.getInputStream(), BUFFER_SIZE);
byte[] dataBuffer = new byte[1024 * 16];
int size = 0;
while ((size = in.read(dataBuffer)) != -1) {
    out.write(dataBuffer, 0, size);
}
out.flush();
byte[] bytesReceived = out.toByteArray();
  

Комментарии:

1. Спасибо. просто нужно разобраться в этом. Как я могу продолжить вставлять захваченные данные в picturebox?

2. Я должен сказать, что кое-что звучит странно. Почему сервер не отправляет изображение в допустимом формате изображения? Например, png или jpg. Тогда было бы намного проще отобразить изображение.

3. Похоже, вместо этого вы могли бы преобразовать byte[] в массив целых чисел (где вам нужно ИЛИ и сдвинуть 3 байта в одно целое число), а затем использовать developer.android.com/reference/android/graphics /… , int, int, android.графика. Bitmap.Config)

4. Я не могу ответить на ваш вопрос о том, почему, потому что я не пишу эту его часть.. Я мог бы подумать — попросить другое решение после того, как я попробовал это. Я знаю, что система может сохранять в виде файла png, было бы проще каким-то образом отправить сам файл? Спасибо за помощь и пояснения на данный момент.

5. Было бы лучше использовать стандартный формат изображения вместо вашего собственного. Вы могли бы использовать существующий API с надежным, оптимизированным и практически не содержащим ошибок кодом. Но, похоже, это какой-то проект или домашнее задание, так что, возможно, причина просто в том, чтобы заставить вас узнать, как можно хранить изображение в двоичном формате.