3
Android Client
からNodeJS Server
にデータを送信する際に問題があります。socket.ioを使って画像ファイル(バイナリデータ)を送信するには?
私はクライアントのSocket.IO-client javaライブラリを使用しています。
しかし、私にはあまり情報がありません。
どのようにしてAndroidクライアントからnodejsサーバーにバイナリデータを送信できますか?
Android Client
からNodeJS Server
にデータを送信する際に問題があります。socket.ioを使って画像ファイル(バイナリデータ)を送信するには?
私はクライアントのSocket.IO-client javaライブラリを使用しています。
しかし、私にはあまり情報がありません。
どのようにしてAndroidクライアントからnodejsサーバーにバイナリデータを送信できますか?
あなたはエンコードに画像をBase64でを使用することができます。
public void sendImage(String path)
{
JSONObject sendData = new JSONObject();
try{
sendData.put("image", encodeImage(path));
socket.emit("message",sendData);
}catch(JSONException e){
}
}
private String encodeImage(String path)
{
File imagefile = new File(path);
FileInputStream fis = null;
try{
fis = new FileInputStream(imagefile);
}catch(FileNotFoundException e){
e.printStackTrace();
}
Bitmap bm = BitmapFactory.decodeStream(fis);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG,100,baos);
byte[] b = baos.toByteArray();
String encImage = Base64.encodeToString(b, Base64.DEFAULT);
//Base64.de
return encImage;
}
だから基本的に、あなたがBase64での画像だけデコードを受信したい場合は
をNode.jsのための文字列を送信しています:
private Bitmap decodeImage(String data)
{
byte[] b = Base64.decode(data,Base64.DEFAULT);
Bitmap bmp = BitmapFactory.decodeByteArray(b,0,b.length);
return bmp;
}
助けてくれてありがとう –
喜んで助けてください:) –
Thコードのためのanks。それは私の多くを助ける。 –