バイトの配列、実際には画像からのバイトを含む文字列をバイト配列に変換する場合は、どうすればよいでしょうか。
これはかなり一般的な問題だと思うので、誰かが何か提案をすることができると思います。
JSONArrayをバイト配列に変換する方が良い場合は、その理由を知りたいと思います。
バイトの配列、実際には画像からのバイトを含む文字列をバイト配列に変換する場合は、どうすればよいでしょうか。
そもそもどのように文字列を作成したかによります。どこかで何かが使われたら
new String(imageData)
そうすれば、あなたはすでに情報を失っている可能性があります。画像データはテキストではありません。
不透明なバイナリデータをテキストで伝播するには、 base64(または場合によっては16進数)を使用する必要があります。Base64
Androidには、これを簡単にするクラスがすでにあります。
String text = Base64.encodeToString(originalBytes, Base64.DEFAULT);
...
byte[] roundTrip = Base64.decode(text, Base64.DEFAULT);
編集:そのクラスを使用できない場合は、このパブリックドメインのbase64エンコーダーが正常に機能するはずです。
Byte[]から文字列
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Your_Bitmap.compress(CompressFormat.PNG, 0 , baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
String bytetostring = Base64.encodeToString(b, Base64.DEFAULT);
return bytetostring ;
文字列からバイト[]
byte[] data = Base64.decode("Your string", Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);