我目前有一个python套接字服务器,使用opencv从网络摄像头捕获。我使用image.tostring();
转换了捕获的图像我正在尝试将此图像发送到Android应用程序并在Web视图中打开它。我可以打开文本字符串,但不能将其恢复为图像。
这是我可以在网络视图中显示任何内容的唯一方法:
webv.loadData(html, "text/html", "utf-8");
数据正在转移到Android设备,所以我知道套接字工作正常,我只是无法弄清楚翻译。
有什么建议吗?
根据以下评论编辑:
确定。所以我现在在发送之前将字符串转换为python中的base64。
我尝试使用bitmapfactory将图像添加到ImageView:
byte[] decodedString = Base64.decode(result, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
但是我得到了错误 SkImageDecoder :: Factory返回null
我还尝试了以下的webview,它给了我一个破碎的图像图标
String html = "<img src=\"data:image/jpeg;base64,"+result+"\" />";
webv.loadData(html, "text/html", "utf-8");
这些给我一个空白的webview
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)