我想知道如果要转换包含字节数组的字符串,实际上是从图像到字节数组的字节,你应该怎么做。
我想这是一个非常常见的问题,所以我想有人可以给出任何建议。
如果将JSONArray转换为字节数组更好,我想知道原因。
答案 0 :(得分:6)
我想知道如果要转换包含字节数组的字符串,实际上是从图像到字节数组的字节,你应该怎么做。
这取决于你首先构建字符串的方式。如果某处某处使用了
new String(imageData)
然后你可能已经丢失了信息。图像数据不是文本。
要在文本中传播不透明的二进制数据,应该使用base64(或可能是hex)。 Android已经有一个Base64
类,可以轻松实现:
String text = Base64.encodeToString(originalBytes, Base64.DEFAULT);
...
byte[] roundTrip = Base64.decode(text, Base64.DEFAULT);
编辑:如果您不能使用该课程,this public domain base64 encoder应该可以正常使用。
答案 1 :(得分:0)
字节[]到字符串
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);