Como converter bitmap para PNG e depois para base64 no Android?
Como o título sugere, eu estou tentando fazer com que o usuário do meu aplicativo Android selecione uma imagem do seu dispositivo (pronto), então eu quero escalar a imagem para baixo (pronto), comprimir / converter a imagem para png e enviá-la para uma API como uma string base64.
Então eu atualmente redimensiono a imagem assim:
options.inSampleSize = calculateInSampleSize(options, MAX_IMAGE_DIMENSION, MAX_IMAGE_DIMENSION);
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
Então eu tenho um bitmap, que eu quero converter em um PNG, e de lá para um base64. Eu encontrei algum código de exemplo para converter em um PNG e armazená-lo no dispositivoAqui.
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 salvar a imagem. Eu só quero mantê-lo na memória como um PNG e depois convertê-lo ainda mais para uma seqüência de caracteres base64.
Alguém sabe como eu poderia converter a imagem para um png e armazená-lo em uma variável dessa maneira, ou melhor ainda, convertê-lo para base64 imediatamente? Todas as dicas são bem vindas!