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!