Загрузить конвертированное изображение base64 на сервер в Android - PullRequest
2 голосов
/ 01 апреля 2011

Мне нужно преобразовать изображение в формат base64 и затем загрузить его на сервер, а затем извлечь строку base64 с сервера и преобразовать ее обратно в изображение ... Как это сделать?

Ответы [ 4 ]

0 голосов
/ 08 июня 2018

Сначала преобразуйте растровое изображение в базу 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);Bitmap decodedByte = BitmapFactory.decodeByteArray (decodedString, 0, decodedString.length);

Затем используйте эти растровые изображения в режиме просмотра изображений.

0 голосов
/ 01 апреля 2011

Используйте эту ссылку и получите класс Base64Coder.Это поможет вам кодировать изображение в строку Base64 и декодировать строку в массив байтов. С помощью этих байтов вы можете создать файл изображения.

    byte[] stringBytes = your_Base64_String.getBytes();
    byte[] img = null;
    try {
        img = Base64Coder.decode(stringBytes );
    } catch (IOException e) {
         e.printStackTrace();
     }
0 голосов
/ 07 июля 2014
    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
0 голосов
/ 01 апреля 2011

Это сообщение было написано кем-то, кто хочет пойти в обратном направлении, куда вы идете, но ответы по-прежнему актуальны:

преобразование строки base64 в изображение в Android

Остерегайтесь проблем с нехваткой памяти:

OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины: - Android

Вот пример отправки файла на сервер с Androidприложение:

http://groups.google.com/group/android-developers/browse_thread/thread/e51d4f74452a1143?tvc=2&pli=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...