通过套接字从python发送图像到android

时间:2013-05-03 15:23:07

标签: android python image sockets webcam

我目前有一个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)

0 个答案:

没有答案