我需要以base64格式转换Image然后将其上传到服务器上,然后从服务器检索base64字符串并将其转换回图像......怎么做?
答案 0 :(得分:0)
这篇帖子是由一个想要朝着相反方向前进的人做出的,但答案仍然是相关的:
converting base64 String to image in android
小心内存不足问题:
OutOfMemoryError: bitmap size exceeds VM budget :- Android
以下是从Android应用程序向服务器发布文件的示例:
http://groups.google.com/group/android-developers/browse_thread/thread/e51d4f74452a1143?tvc=2&pli=1
答案 1 :(得分:0)
使用此link并获取Base64Coder类。这将帮助您将图像编码为Base64字符串并将字符串解码为字节数组。您可以使用该字节制作图像文件。
byte[] stringBytes = your_Base64_String.getBytes();
byte[] img = null;
try {
img = Base64Coder.decode(stringBytes );
} catch (IOException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
public String ConvertBitmapToBase64Format(Bitmap bitmap)
{
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 70, stream);
byte[] byteFormat = stream.toByteArray();
// get the base 64 string
String imageString = Base64.encodeToString(byteFormat, Base64.NO_WRAP);
return imageString;
}
// then this imageString pass to json object
String encodedImage=ConvertBitmapToBase64Format(bitmap); // pass your image bitmap
JsonObject.put("Key",
encodedImage);
pass this jsonObject to your webservice
答案 3 :(得分:0)
首先将位图转换为Base 64
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Bitmap bitmap = Bitmap.createScaledBitmap("Your Bitmap Object Here", 100, 100, false);
bitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, false);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encoded = Base64.encodeToString(imageBytes, Base64.NO_WRAP);
然后使用Json对象上传如下:
JSONObject jsonObject = new JSONObject();
String withBase = "data:image/jpeg;base64," + encoded;
jsonObject.put("b64", "" + withBase);
System.out.println("base 64 == " + jsonObject.toString());
return jsonObject.toString();
然后您可以在您的响应中检索这些Base 64字符串。
然后通过下面将这些Base64转换为位图:
byte [] decodingString = Base64.decode(encodedImage,Base64.DEFAULT); Bitmap decodingByte = BitmapFactory.decodeByteArray(decodingString,0,encodedString.length);
然后在图像视图中使用这些位图。