В настоящее время у меня есть сервер сокетов Python, который захватывает с веб-камеры с помощью opencv. Я преобразовал захваченное изображение с помощью image.tostring ();
Я пытаюсь отправить это изображение в приложение для Android и открыть его в веб-просмотре. Я могу открыть текстовую строку, но не могу вернуть ее в изображение.
Это единственный способ получить что-нибудь для отображения в веб-представлении:
webv.loadData(html, "text/html", "utf-8");
Данные передаются на устройство Android, поэтому я знаю, что сокет работает нормально, я просто не могу понять перевод.
Какие-либо предложения?
ИЗМЕНИТЬ на основе комментариев ниже:
В порядке. Итак, я преобразовал строку в base64 в python перед ее отправкой.
Я попытался использовать bitmapfactory, чтобы добавить изображение в ImageView, используя:
byte[] decodedString = Base64.decode(result, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
но я получаю сообщение об ошибке SkImageDecoder :: Factory вернул null
Я также попробовал просмотреть в Интернете следующее, что дает мне значок сломанного изображения
String html = "<img src=\"data:image/jpeg;base64,"+result+"\" />";
webv.loadData(html, "text/html", "utf-8");
Это дает мне пустой веб-просмотр
String html = "<img src=\"data:image/jpeg;base64,"+result+"\" />";
webv.loadData(html, "iamge/jpeg", "base64");
String html = "<img src=\"data:image/jpeg;base64,"+result+"\" />";
webv.loadData(html, "text/html", "base64");
webv.loadData(result, "image/jpeg","base64");
Похоже, проблема в моем коде на Python, так как строка base64, экспортированная в текстовый файл, не может быть преобразована в изображение, она "содержит ошибки" в соответствующих фрагментах кода:
img = cv.QueryFrame(cam)
imgstr = base64.b64encode(img.tostring())
conn = s.accept()
conn.send(imgstr)