2017-02-01 4 views
0

Ich habe nach outofmemory Ausnahmefragen gesucht, aber ich konnte keinen Weg für mein Problem finden. Ich habe eine Anwendung, die Bilder verarbeitet. Ich muss RGB-Werte von jedem Pixel des Bildes erhalten. Ich kann es tun, wenn ich Bild whatsapp Datei wähle, weil sie kleine Größe haben, aber wenn ich Bilder von der Galerie wählen möchte (genommen über Kamera) oder wenn ich Foto von der Kamera direkt nehmen möchte, habe ich outofmememory Ausnahme. Ich möchte das Bild nicht verkleinern, da ich die Bildinformationen aller Pixel benötige.Wie man outmememory Ausnahme in Android behandelt?

Ich habe die Datei und Name Informationen des Bildes als eine Zeichenfolge, ich bekomme diese Ausnahme, wenn ich die Zeichenfolge wie unten dargestellt dekodieren;

imgDecodableString = intent3.getStringExtra("BMP"); 
rotatedBitmap = BitmapFactory.decodeFile(imgDecodableString); 

Gibt es eine Möglichkeit, dieses Problem zu behandeln? Vielen Dank im Voraus.

+0

https://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html – CommonsWare

+0

Vergewissern Sie sich, dass kein Speicher ausgelaufen ist, unabhängig davon, wie groß die Bitmap ist: https://developer.android.com/studio/ profile/recherche-ram.html –

+0

imgDecodableString ist die Base64-Zeichenfolge? –

Antwort

0

Wenn Sie diese Codezeile in Manifest-Datei im Anwendungs-Tag verwenden, wird die Outofmemory-Ausnahme versuchen, dies zu lösen.

android: largeHeap = „true“

0

Wenn Sie nicht das Bild verkleinern möchten, können Sie BitmapRegionDecoder verwenden, um jeden Teil des Bildes zu dekodieren und verarbeiten, um die Bitmap anstelle von decode ganzen das Bild.

Verwandte Themen