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 première 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 valeur.
Solution :
Pour résoudre ce problème, envisagez d'utiliser l'approche suivante :
Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();
Dans ce code amélioré :
En utilisant cette approche, vous pouvez convertir efficacement un objet Bitmap en un tableau d'octets sans rencontrant le problème de sous-débordement de la mémoire tampon.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3