Java Bitmap to Byte Array: Menyelesaikan Isu Penampan
Dalam percubaan untuk menukar peta bit Java kepada tatasusunan bait, sesetengah pengguna menghadapi masalah pelik di mana penimbal mengandungi hanya sifar selepas menyalin piksel menggunakan kaedah copyPixelsToBuffer. Walaupun peta bit yang dikembalikan kamera tidak boleh diubah, hasil yang tidak dijangka ini menimbulkan kebimbangan tentang ketepatan kod.
Untuk menangani isu ini, pertimbangkan untuk menggunakan pendekatan alternatif:
<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>
Dalam kod yang disemak ini , daripada menyalin piksel terus ke penimbal, kami menggunakan ByteArrayOutputStream untuk memampatkan peta bit ke dalam format PNG (dengan tahap kualiti 100). Proses ini menjana tatasusunan bait yang mengandungi data bitmap. Selain itu, kod tersebut mengeluarkan sumber bitmap dengan memanggil kaedah kitar semula untuk mengelakkan kebocoran memori.
Atas ialah kandungan terperinci Mengapakah penimbal bitmap Java saya diisi dengan sifar selepas menggunakan copyPixelsToBuffer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!