Intereting Posts
Переопределение Android ArrayAdapter Как я могу динамически выбирать, какую активность запускать при открытии приложения? Как запустить JavaFX на Android Почему компьютерная клавиатура Android не отвечает на EditText? Как использовать bintray jcenter для бесплатной публикации бесплатной библиотеки Android? Он просит меня зарегистрировать организацию и заплатить через месяц Решение для ошибки INSTALL_FAILED_INSUFFICIENT_STORAGE на Android Возврат результата цели, когда активность закрыта кнопкой «Назад» Robolectric tank на объектах Application, которые загружают библиотеки JNI. Могу ли я найти решение? Как сопоставить версию Google Play Services с установленной версией? Изменение значений шагов в строке поиска? Андроид – просто выцветать и исчезать в анимации для просмотра Использование GSON с включенной proguard Java: разные результаты при декодировании base64 строки с java.util.Base64 vs android.util.Base64 Добавление параметров для выбора с помощью jQuery не работает Исправление ошибки в styles.xml для генерации R.java: имя ресурса не найдено 'Theme.AppCompat.Light'

Кодировать и декодировать растровый объект в строке base64 в Android

Я хочу кодировать и декодировать объект Bitmap в строке base64 . Я использую Android API10,

Я попытался, без каких-либо успехов, использовать метод в этой форме для кодирования Bitmap .

 public static String encodeTobase64(Bitmap image) { Bitmap immagex=image; ByteArrayOutputStream baos = new ByteArrayOutputStream(); immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT); Log.e("LOOK", imageEncoded); return imageEncoded; } 

Solutions Collecting From Web of "Кодировать и декодировать растровый объект в строке base64 в Android"

 public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality) { ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream(); image.compress(compressFormat, quality, byteArrayOS); return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT); } public static Bitmap decodeBase64(String input) { byte[] decodedBytes = Base64.decode(input, 0); return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length); } 

Пример использования:

 String myBase64Image = encodeToBase64(myBitmap, Bitmap.CompressFormat.JPEG, 100); Bitmap myBitmapAgain = decodeBase64(myBase64Image); 

Надеюсь, что это поможет вам

  Bitmap bitmap = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri)); 

(Если вы ссылаетесь на URI для построения растрового изображения) ИЛИ

 Resources resources = this.getResources(); Bitmap bitmap= BitmapFactory.decodeResource(resources , R.drawable.logo); 

(Если вы ссылаетесь на drawable для построения растрового изображения)

Затем кодируйте его

  ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] image = stream.toByteArray(); String encodedImage = Base64.encode(image, Base64.DEFAULT); 

Для декодирования логика будет точно противоположна кодированию

 byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);