Bitmap Java en tableau d'octets : résolution du problème de tampon
Lors d'une tentative de conversion d'un bitmap Java en tableau d'octets, certains utilisateurs rencontrent un problème particulier où le tampon ne contient que des zéros après avoir copié les pixels à l'aide de la méthode copyPixelsToBuffer. Malgré l'immuabilité du bitmap renvoyé par la caméra, ce résultat inattendu soulève des inquiétudes quant à l'exactitude du code.
Pour résoudre ce problème, envisagez d'utiliser une approche alternative :
<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 code révisé , au lieu de copier les pixels directement dans un tampon, nous utilisons ByteArrayOutputStream pour compresser le bitmap au format PNG (avec un niveau de qualité de 100). Ce processus génère un tableau d'octets contenant les données du bitmap. De plus, le code libère les ressources du bitmap en appelant la méthode de recyclage pour éviter les fuites de mémoire.
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!