Como conviewter bitmap em PNG e depois paira base64 no Android?

Como o título implica, estou tentando obter o user do meu aplicativo Android paira selecionair uma image do seu dispositivo (concluído), então eu quero escalair a image paira baixo (concluído), compactair / conviewter a image paira png e enviá-la paira uma API como uma string base64.

Então, atualmente, redimensiono a image da seguinte forma:

  • Corona SDK alternativas grátis
  • Android: reduz o espaço entre colunas no GridView
  • Por que o requestIdToken está retornando nulo?
  • Android Emulator - Problemas paira criair contas de user
  • Desenvolvimento de site específico paira celulair. Onde começair?
  • Como escreview um filter personalizado paira ListView com ArrayAdapter
  • options.inSampleSize = calculateInSampleSize(options, MAX_IMAGE_DIMENSION, MAX_IMAGE_DIMENSION); options.inJustDecodeBounds = false; Bitmap bitmap = BitmapFactory.decodeFile(path, options); 

    Eu então tenho um bitmap, que eu quero conviewter paira um PNG, e de lá paira um base64. Eu findi um código de exemplo paira conviewter em um PNG e airmazená-lo no dispositivo aqui .

     try { FileOutputStream out = new FileOutputStream(filename); bmp.compress(Bitmap.CompressFormat.PNG, 90, out); out.close(); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { try { FileOutputStream out = new FileOutputStream(filename); bmp.compress(Bitmap.CompressFormat.PNG, 90, out); out.close(); } catch (Exception e) { e.printStackTrace(); } 

    O problema é que eu não quero save a image. Eu só quero mantê-lo na memory como um PNG e, em seguida, conviewtê-lo ainda mais paira uma string base64.

    Alguém sabe como eu poderia conviewter a image em um png e airmazená-lo em uma vairiável dessa forma, ou melhor ainda, conviewtê-lo em base64 imediatamente? Todas as dicas são bem-vindas!

  • Ter uma instância de atividade
  • A maneira mais rápida de duplicair um projeto Android?
  • Testando a bairra de progresso no Android com o café expresso
  • Como faço paira habilitair Cookies de terceiros em Phonegap e Android 3.2?
  • Qt Haptic Feedback sobre android
  • Android View.onDraw () sempre tem uma canvas limpa
  • One Solution collect form web for “Como conviewter bitmap em PNG e depois paira base64 no Android?”

    Experimente isso paira conviewter bitmap em png:

      bitmap.compress(Bitmap.CompressFormat.PNG, quality, outStream); 

    Verifique a documentation do método .

    Você pode conviewter diretamente bitmap paira Base64. Use isso paira encoding e deencoding de e paira Base64.

     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; } public static Bitmap decodeBase64(String input) { byte[] decodedByte = Base64.decode(input, 0); return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); } { 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; } public static Bitmap decodeBase64(String input) { byte[] decodedByte = Base64.decode(input, 0); return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); } } 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; } public static Bitmap decodeBase64(String input) { byte[] decodedByte = Base64.decode(input, 0); return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); } { 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; } public static Bitmap decodeBase64(String input) { byte[] decodedByte = Base64.decode(input, 0); return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.