Wie bekomme ich eine Bitmap mit einer bestimmten (speicherfreundlichen) Größe von der Kamera?Größe der Bitmap, die von der Kamera über die Absicht zurückgegeben wird?
Ich beginne eine Kamera Absicht mit:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("return-data", true);
photoUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "mytmpimg.jpg"));
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(cameraIntent, REQUEST_CODE_CAMERA);
Griff ich das Ergebnis hier:
// Bitmap photo = (Bitmap) intent.getExtras().get("data");
Bitmap photo = getBitmap(photoUri);
Nun, wenn ich die Kommentarzeile verwenden - direkt die Bitmap bekommen, habe ich immer ein 160 x 120 Bitmap, und das ist zu klein. Wenn ich es aus dem URI mit ein paar Standard-Sachen, die ich gefunden habe (Methode getBitmap), lade, lädt es eine 2560 x 1920 Bitmap (!) Und das verbraucht fast 20 mb Speicher.
Wie lade ich 480 x 800 (die gleiche Größe wie die Kameravorschau zeigt)?
Ohne die 2560 x 1920 in Arbeitsspeicher laden und herunterskalieren zu müssen.
Hilft das? http://stackoverflow.com/questions/3331527/android-resize-a-large-bitmap-file-to-scaled-output-file –
Wahrscheinlich, aber gibt es nicht einen Weg, nur zu bekommen, was ich auf dem Bildschirm sehe wenn du das Bild nimmst ...? Ich brauche nichts mehr. – Ixx
Ben Rujils Link weist auf die beste Antwort hin, die ich kenne. Ihre Wahl ist im Wesentlichen entweder Thumbnail in Intent oder native Auflösung in Datei. Wenn Sie nicht möchten, dass die Kamera-App das Foto in einer niedrigeren Auflösung speichert, haben Sie die Wahl. – Sparky