2011-01-04 3 views
2

Ich habe ein Bild manuell auf Bitmap gezeichnet. Aber es hat Speicherfehler gezeigt. Ich, dann verkleinert die Größe des Bildes, die mir die komprimierte Form des Bildes zeigt. Ich brauche die Originalgröße des Bildes, das angezeigt wird, und zeigt dann einen Speicherfehler an. Bitte helfen Sie mir bei der Lösung des Problems. Ich füge auch den Teil des Codes bei.BItmap: Fehler wegen zu wenig Speicher. wie bekomme ich die ursprüngliche bildgröße nach dem komprimieren in android

ImageView iv1 = neues ImageView (mcontext);

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;

BitmapFactory.decodeFile (pageViewManager.getPenToolPath() + pageViewManager.getCurrentPageIndex() + ".jpg");

bmp = BitmapFactory.decodeFile (pageViewManager.getPenToolPath() + pageViewManager.getCurrentPageIndex() + ".jpg", Optionen);

iv1.setImageBitmap (bmp);

Antwort

0

Der von einem unkomprimierten Bild verwendete Speicherplatz ist einfach zu berechnen: es ist die Anzahl der Pixel * die Farbtiefe, die Anzahl der Pixel selbst ist Höhe * Breite. Zum Beispiel für ein Bild von 1000 * 800 in 24 Bits (3 Bytes), wird die Speichergröße:

1000 * 800 * 3 = 2400000 Bytes oder 2,4 Mb

+0

Nein, ich brauche nicht zu Berechnen Sie die Speichergröße. Aber ich möchte das Originalbild, das ich auf Bitmap gezeichnet habe, anzeigen, ohne es komprimieren zu müssen. – user562237

+0

Ich bin mir wirklich nicht sicher, ob ich deine Frage verstehe. Wann passiert dein OutOfMemoryError genau? –

+0

Wenn ich options.inSampleSize = 1 einstelle, zeigt es einen Speichermangelfehler, der die Originalgröße des Bildes anzeigen soll. Ich habe das Bild durch Einstellung von options.inSampleSize = 2 komprimiert. Aber ich muss das Originalbild lesen. – user562237

Verwandte Themen