我需要将 Image 转换为 base64 格式,然后将其上传到服务器,然后从服务器检索 base64 字符串并将其转换回图像......如何做?
最佳答案
首先将位图转换为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[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); 位图 decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
然后在您的 ImageView 中使用这些位图。
关于android - 在 android 中的服务器上上传 base64 转换后的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512503/