Intereting Posts
Когда использовать ShapeRenderer, Mesh + SpriteBatch, Box2D и Scene2D в Libgdx? Уведомление проходит старое задание Вызывается onCreate при создании объекта Activity? Android RecyclerView с помощью разделаIndexer Обработка списков с помощью RxJava и дооснащение в android При использовании TalkBack, какой предпочтительный способ предупредить пользователя, когда содержимое TextView изменилось? Gson deserialization List <String> в realmList <RealmString> Android-виджет отличается ориентацией на портрет и пейзаж Facebook, android java.lang.IllegalStateException: не удается выполнить задачу: задача уже запущена Безопасный элемент Контроль доступа на ICS 4.0.4 Не удается найти org.gradle.api.artifacts.result.ResolvedModuleVersionResult при применении Android-плагина в Gradle If (session.isOpen ()), facebook login на android всегда возвращает false Соединение GoogleApiClient всегда сбой в первый раз, но второе успешное завершение Разница между onStart () и onResume () Не может вызвать String.isEmpty () в android

Кодировать и декодировать растровый объект в строке 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);