Jak przekonwertować bitmapę na PNG, a następnie na base64 w Androidzie?

Jak sugeruje tytuł, próbuję nakłonić użytkownika mojej aplikacji na Androida do wybrania obrazu z jego urządzenia (gotowe), a następnie chcę przeskalować obraz w dół (zrobić), skompresować / przekonwertować obraz na png i wysłać do API jako ciąg base64.

Obecnie zmieniam rozmiar obrazu w ten sposób:

options.inSampleSize = calculateInSampleSize(options, MAX_IMAGE_DIMENSION, MAX_IMAGE_DIMENSION);
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);

Następnie mam bitmapę, którą chcę przekonwertować na PNG, a stamtąd na base64. Znalazłem przykładowy kod do konwersji na PNG i zapisania go na urządzeniututaj.

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

Problem polega na tym, że nie chcę zapisywać obrazu. Chcę tylko zachować go w pamięci jako PNG, a następnie przekonwertować go na ciąg base64.

Czy ktoś wie, jak mogę przekonwertować obraz na png i zapisać go w zmiennej w ten sposób, a nawet lepiej, przekonwertować go natychmiast na base64? Wszystkie wskazówki są mile widziane!

questionAnswers(1)

yourAnswerToTheQuestion