Rumah > Java > javaTutorial > Mengapa Penukaran Peta Bit Java Saya kepada Tatasusunan Byte Menghasilkan Semua 0s?

Mengapa Penukaran Peta Bit Java Saya kepada Tatasusunan Byte Menghasilkan Semua 0s?

Susan Sarandon
Lepaskan: 2024-11-05 07:58:02
asal
314 orang telah melayarinya

Why Does My Java Bitmap Conversion to a Byte Array Result in All 0s?

Penukaran Tatasusunan Byte daripada Peta Bit Java Dinilai Semula

Dalam percubaan untuk menukar peta bit Java kepada tatasusunan bait, pembangun menghadapi isu pelik di mana tatasusunan bait terhasil mengandungi semua 0s walaupun peta bit diperoleh daripada kamera.

Coretan kod yang digunakan untuk penukaran ini melibatkan mengekstrak bait baris, ketinggian dan memperuntukkan ByteBuffer bagi saiz yang dikira. CopyPixelsToBuffer kemudiannya digunakan untuk memindahkan data imej ke dalam penimbal, diikuti dengan pengekstrakan bait ke dalam tatasusunan bait yang baru dibuat.

Setelah diperiksa, kod itu kelihatan baik. Walau bagaimanapun, isu asas terletak pada ketidakbolehubah peta bit. Walaupun copyPixelsToBuffer berhasrat untuk membuat salinan data bitmap, imej asas kekal tidak berubah kerana kebolehubahannya, menghasilkan penimbal diisi dengan 0s.

Pendekatan alternatif menawarkan penyelesaian muktamad:

ByteArrayOutputStream

Untuk menukar peta bit secara berkesan kepada tatasusunan bait, pertimbangkan untuk menggunakan ByteArrayOutputStream bersama-sama dengan kaedah pemampatan Bitmap. Teknik ini memampatkan peta bit ke dalam format tertentu (PNG dalam kes ini) dan menulis data yang dimampatkan ke dalam tatasusunan bait. Selepas itu, peta bit boleh dikitar semula untuk membebaskan memori.

Dengan melaksanakan strategi ini, anda boleh menukar peta bit Java kepada tatasusunan bait dengan pasti, menyelesaikan isu yang dihadapi dengan copyPixelsToBuffer dan menghasilkan tatasusunan bait yang sah yang mewakili imej .

Atas ialah kandungan terperinci Mengapa Penukaran Peta Bit Java Saya kepada Tatasusunan Byte Menghasilkan Semua 0s?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan