Heim >Java >javaLernprogramm >Warum ist mein Java-Bitmap-Puffer nach der Verwendung von copyPixelsToBuffer mit Nullen gefüllt?

Warum ist mein Java-Bitmap-Puffer nach der Verwendung von copyPixelsToBuffer mit Nullen gefüllt?

DDD
DDDOriginal
2024-11-05 09:06:02356Durchsuche

Why is my Java bitmap buffer filled with zeros after using copyPixelsToBuffer?

Java-Bitmap in Byte-Array: Pufferproblem lösen

Beim Versuch, eine Java-Bitmap in ein Byte-Array zu konvertieren, stoßen einige Benutzer auf ein Besonderes Problem, bei dem der Puffer nach dem Kopieren der Pixel mit der Methode copyPixelsToBuffer nur Nullen enthält. Trotz der Unveränderlichkeit der von der Kamera zurückgegebenen Bitmap wirft dieses unerwartete Ergebnis Bedenken hinsichtlich der Genauigkeit des Codes auf.

Um dieses Problem zu beheben, sollten Sie einen alternativen Ansatz in Betracht ziehen:

<code class="java">Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();</code>

In diesem überarbeiteten Code Anstatt die Pixel direkt in einen Puffer zu kopieren, verwenden wir ByteArrayOutputStream, um die Bitmap in ein PNG-Format (mit einer Qualitätsstufe von 100) zu komprimieren. Dieser Prozess generiert ein Byte-Array, das die Daten der Bitmap enthält. Darüber hinaus gibt der Code die Ressourcen der Bitmap frei, indem er die Recycle-Methode aufruft, um Speicherlecks zu verhindern.

Das obige ist der detaillierte Inhalt vonWarum ist mein Java-Bitmap-Puffer nach der Verwendung von copyPixelsToBuffer mit Nullen gefüllt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn