Преобразование свойства byte [] в растровое изображение в Android с использованием ksoap2

#java #android #ksoap2

#java #Android #ksoap2

Вопрос:

У меня есть этот код для получения массива байт. Клиент встроен в ksoap2.

Со всеми свойствами у меня все в порядке, но когда я пытаюсь получить свойство, в котором есть изображение, оно возвращается null при BitmapFactory.decodeByteArray выполнении. И действительно, я получаю информацию при отладке.

Код, который я использую, является:

 String result = ((SoapObject)poSoap).getProperty("MyImage").toString();
byte[] bytes = result.getBytes();
Bitmap png = BitmapFactory.decodeByteArray(bytes, 0, <<<png file size>>>);
  

Свойство myImage представляет собой файл png.

В качестве сервера я использую WCF на C # и получаю файл с помощью:

 var bytes = File.ReadAllBytes(@file);
  

@file — это путь к файлу, он работает нормально.

Я думаю, что проблема не в стороне сервера, а в стороне клиента.

Есть ли у меня другой способ получить это свойство (введите byte[] ) и преобразовать его в Bitmap?

Ответ №1:

Я получил решение, как я уже сказал, это было на стороне клиента, только мне нужно было декодировать в base64, мой новый код:

 String result = ((SoapObject)poSoap).getProperty("MyImage").toString();             
byte[] bloc = Base64.decode(result, Base64.DEFAULT);         
Bitmap png = BitmapFactory.decodeByteArray(bloc,0,bloc.length);