Java : Conversion d'un bitmap en tableau d'octets
Lors de la tentative de conversion d'un objet Bitmap en tableau d'octets à l'aide du code fourni, les utilisateurs peuvent rencontrer un problème où tous les octets du tampon restent à 0 après avoir appelé copyPixelsToBuffer(). Malgré l'immuabilité du Bitmap renvoyé par la caméra, cela ne devrait pas affecter le processus de copie.
Cause profonde potentielle :
L'extrait de code utilise la classe ByteBuffer pour allouer de la mémoire et copier le Bitmap. pixels dans le tampon. Cependant, il accède directement à un tampon sous-jacent sans définir correctement son décalage. Cela peut avoir pour conséquence que la méthode get() ne renvoie que 0 valeurs.
Solution :
Pour résoudre ce problème, envisagez d'utiliser l'approche suivante :
<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>
Dans ce cas code amélioré :
En utilisant cette approche, vous pouvez convertir efficacement un objet Bitmap en un tableau d'octets sans rencontrer le problème de débordement de tampon.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!