Wie konvertiere ich Bitmap in PNG und dann in base64 in Android?

Wie aus dem Titel hervorgeht, versuche ich, den Benutzer meiner Android-App dazu zu bringen, ein Bild von seinem Gerät auszuwählen (fertig). Anschließend möchte ich das Bild verkleinern (fertig), komprimieren / konvertieren und es an PNG senden auf eine API als base64-Zeichenfolge.

Daher habe ich die Größe des Bildes momentan so geändert:

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

Ich habe dann eine Bitmap, die ich in eine PNG und von dort in eine base64 konvertieren möchte. Ich habe einen Beispielcode gefunden, der in ein PNG konvertiert und auf dem Gerät gespeichert werden kannHier.

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

Das Problem ist, dass ich das Bild nicht speichern möchte. Ich möchte es nur als PNG im Speicher behalten und es dann weiter in eine Base64-Zeichenfolge konvertieren.

Weiß jemand, wie ich das Bild in ein PNG konvertieren und es auf diese Weise in einer Variablen speichern oder sogar sofort in base64 konvertieren kann? Alle Tipps sind willkommen!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage