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

通过套接字将图像从python发送到android,android,python,image,sockets,webcam,Android,Python,Image,Sockets,Webcam,我目前有一个python套接字服务器,它使用opencv从网络摄像头中捕获数据。我已经使用image.tostring()转换了捕获的图像 我正在尝试将此图像发送到android应用程序,并在web视图中打开它。我可以打开文本字符串,但无法将其恢复为图像 这是我可以在web视图中显示任何内容的唯一方法: webv.loadData(html, "text/html", "utf-8"); 数据正在传输到android设备,所以我知道套接字工作正常,我只是无法理解转换 有什么建议吗 根据以下评论

我目前有一个python套接字服务器,它使用opencv从网络摄像头中捕获数据。我已经使用image.tostring()转换了捕获的图像

我正在尝试将此图像发送到android应用程序,并在web视图中打开它。我可以打开文本字符串,但无法将其恢复为图像

这是我可以在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::工厂返回null

我还尝试了一个带有以下内容的webview,它给了我一个损坏的图像图标

String html = "<img src=\"data:image/jpeg;base64,"+result+"\" />";
webv.loadData(html, "text/html", "utf-8");

尝试两件事:将有效负载保存到设备上,然后用gdb检查它。我怀疑文件会被破坏。如果是这样,请base64对字符串进行编码,然后将其发送到设备(),谢谢!对我以前没有使用过gdb的原始问题进行了一些编辑。我正试着把我的头绕过去@DavidJust想到了这一点,您是直接从cv.Image()转换为String(),还是在发送之前将其转换为jpeg?已经有一段时间了,但是我很确定cv.Image().toString()格式是BMP格式的。而且,我没有输入-我的意思是ADB不是GDB。android调试桥还有一个实用程序,可以从设备中提取文件并使其成为本地文件,这可以使调试更加容易。Ok。我试试看。我正试图找出如何将cv图像转换为jpeg,因为我认为你是对的。
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");
img = cv.QueryFrame(cam)
imgstr = base64.b64encode(img.tostring())

conn = s.accept()
conn.send(imgstr)