-4

バイトの配列、実際には画像からのバイトを含む文字列をバイト配列に変換する場合は、どうすればよいでしょうか。

これはかなり一般的な問題だと思うので、誰かが何か提案をすることができると思います。

JSONArrayをバイト配列に変換する方が良い場合は、その理由を知りたいと思います。

4

2 に答える 2

6

バイトの配列、実際には画像からのバイトを含む文字列をバイト配列に変換する場合は、どうすればよいでしょうか。

そもそもどのように文字列を作成したかによります。どこかで何かが使われたら

new String(imageData)

そうすれば、あなたはすでに情報を失っている可能性があります。画像データテキストではありません。

不透明なバイナリデータをテキストで伝播するには、 base64(または場合によっては16進数)を使用する必要があります。Base64Androidには、これを簡単にするクラスがすでにあります。

String text = Base64.encodeToString(originalBytes, Base64.DEFAULT);

...

byte[] roundTrip = Base64.decode(text, Base64.DEFAULT);

編集:そのクラスを使用できない場合は、このパブリックドメインのbase64エンコーダーが正常に機能するはずです。

于 2012-05-01T09:29:13.273 に答える
0

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);
于 2012-05-01T09:29:26.743 に答える