在android上的服务器上上传base65转换后的图像

时间:2011-04-01 11:06:34

标签: android file-upload base64

我需要以base64格式转换Image然后将其上传到服务器上,然后从服务器检索base64字符串并将其转换回图像......怎么做?

4 个答案:

答案 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);

然后在图像视图中使用这些位图。