Ziel: Ich möchte die aufgenommene Datei an den Server senden, in Code kann ich photoFile
an den Server mit Retrofit senden, aber das Bild wird auf der Serverseite gedreht, so ist mein Ziel zu beobachten Drehen, zurück in den echten Zustand drehen und diese Datei an den Server senden.OutOfMemoryError Fehler beim Drehen einer Bitmap
Ausgabe: Ich nehme ein Bild von Cam und dann seine Drehung und basierend darauf versuche ich, es zurück zu drehen, aber es gibt nicht genügend Speicherfehler beim Erstellen von zweiten gedrehten Bitmap.
Frage: Ich bin auf der Suche nach einer Lösung, wo ich drehen und es an den Server senden kann, ohne Bitmap zu erstellen, wenn nicht, outofmemory Fehler zu vermeiden und korrekt gedrehte Datei zum Server zu senden.
else if (requestCode == CAPTURE_IMAGE) {
ExifInterface exifInterface = new ExifInterface(photoFile.getAbsolutePath());
Bitmap bitmapOrg = BitmapFactory.decodeFile(photoFile.getAbsolutePath(), new BitmapFactory.Options());
Matrix matrix = new Matrix();
//getRotation method rightly gives 90 as rotation.
matrix.postRotate(getRotation(exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL)));
//point of outofmemory error while creating this bitmap
Bitmap rotated = Bitmap.createBitmap(bitmapOrg, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
Log.d(TAG, "onActivityResult: ");
}
Sie brauchen nicht eine Bitmap zu erstellen. Sie legen die richtige Drehung in der Datei mit ExifInterface fest. Lesen Sie den Exif ein. Stellen Sie die Rotation wie gewünscht ein. Schreiben Sie exif zurück. – greenapps