現在、opencv を使用してウェブカメラからキャプチャする python ソケット サーバーを使用しています。image.tostring(); を使用してキャプチャした画像を変換しました。
この画像を Android アプリケーションに送信して、Web ビューで開くようにしています。テキスト文字列を開くことはできますが、画像に戻すことはできません。
これは、Web ビューに表示するものを取得できる唯一の方法です。
webv.loadData(html, "text/html", "utf-8");
データは Android デバイスに転送されているので、ソケットが正常に動作していることはわかっていますが、翻訳がわかりません。
助言がありますか?
以下のコメントに基づいて編集します。
Ok。そのため、送信する前に、文字列をPythonでbase64に変換しました。
bitmapfactory を使用して、次を使用してイメージを ImageView に追加しようとしました。
byte[] decodedString = Base64.decode(result, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
しかし、エラー SkImageDecoder:: Factory returned null が表示されます
また、次のWebViewを試してみましたが、壊れた画像アイコンが表示されます
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");
テキストファイルにエクスポートされたbase64文字列を画像に再形成できないため、問題は私のpythonコードにあるようです。「エラーが含まれています」該当するコードフラグメント:
img = cv.QueryFrame(cam)
imgstr = base64.b64encode(img.tostring())
conn = s.accept()
conn.send(imgstr)