/ / Android Umgang mit Speicherausnahme bei der Bildverarbeitung - Android, Bildverarbeitung, out-of-Speicher, Bitmap-Bild

Android Umgang mit Speicherausnahme bei der Bildverarbeitung - Android, Bildverarbeitung, out-of-memory, Bitmap-Bild

Dies ist der Sequenzteil dieser Frage: Kombination von 2 Bildern überlagert

Also das Problem ist: wenn die Bildgröße zu groß ist - es wird eine Ausnahme (out of memory exception) Was ich will, ist, selbst wenn das Mobilteil die niedrigere Spezifikations-Hardware hat, geht es nicht zu dieser Ausnahme (aber es dauert länger, das Bild zu verarbeiten)

Ist das möglich?

Das Code-Snippet ist wie folgt:

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2, 0, 0, null);
return bmOverlay;
}

und dieser Codeblock befindet sich in der asynchronen Task.

Ich schätze wirklich, wenn mir jemand in dieser Angelegenheit helfen kann.

Danke und Grüße, Und

Antworten:

2 für die Antwort № 1

Ich denke, Sie haben keine andere Wahl, als die Bitmaps in einer kleineren Größe zu skalieren ...


0 für die Antwort № 2

Der einzige Weg, wie ich damit umgehen könnte, wäresei es, die Bilder in Teile aufzuteilen, so dass du nicht alles auf einmal speichern musst. Wenn du nicht bmp1 behalten willst, kannst du bmp2 direkt darauf zeichnen, anstatt ein neues Bitmap zu erstellen Ich bin mir nicht sicher, ob Sie danach suchen.