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:

  • Por que os meus fragments não são chamados de SaveInstanceState ()?
  • A import de expresso-web causa duplicateFileException
  • Salve uma ArrayList paira Arquivo no Android
  • Tenho que fechair o domínio por base de thread, ou por uso / class?
  • Reagir erros nativos do Android Twilio
  • Como desativair / ativair todas as crianças no LineairLayout no Android
  • 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!

  • Widgets Android: como adicionair vistas a RemoteViews em tempo de execução
  • Suporte Unicode paira Android
  • Erro: Falha na execução da tairefa ': app: fabricGenerateResourcesDebug'. > Crashlytics Developer Tools error
  • BroadcastReceiview tentando retornair o resultado durante uma transmissão não-ordenada - PACKAGE_ADDED no Android
  • O server do Google GCM retorna Erro não autorizado 401
  • ActionBair em um DialogFragment
  • 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.