Maison > Java > javaDidacticiel > Pourquoi ma conversion de bitmap Java en tableau d'octets donne-t-elle uniquement des 0 ?

Pourquoi ma conversion de bitmap Java en tableau d'octets donne-t-elle uniquement des 0 ?

Susan Sarandon
Libérer: 2024-11-05 07:58:02
original
353 Les gens l'ont consulté

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

Conversion de tableau d'octets à partir d'un bitmap Java réévalué

En tentant de convertir un bitmap Java en un tableau d'octets, un développeur rencontre un problème particulier où le tableau d'octets résultant contient tous les 0 malgré l'acquisition du bitmap par la caméra.

L'extrait de code utilisé pour cette conversion impliquait l'extraction des octets de ligne, de la hauteur et de l'allocation d'un ByteBuffer de la taille calculée du bitmap. CopyPixelsToBuffer a ensuite été utilisé pour transférer les données d'image dans le tampon, suivi d'une extraction d'octets dans un tableau d'octets nouvellement créé.

Après examen, le code semble correct. Cependant, le problème sous-jacent réside dans l’immuabilité du bitmap. Bien que copyPixelsToBuffer ait l'intention de faire une copie des données du bitmap, l'image sous-jacente reste inchangée en raison de son immuabilité, ce qui entraîne un tampon rempli de 0.

Une approche alternative offre une solution définitive :

ByteArrayOutputStream

Pour convertir efficacement le bitmap en un tableau d'octets, envisagez d'utiliser ByteArrayOutputStream avec la méthode de compression de Bitmap. Cette technique compresse le bitmap dans un format spécifique (PNG dans ce cas) et écrit les données compressées dans un tableau d'octets. Par la suite, le bitmap peut être recyclé pour libérer de la mémoire.

En mettant en œuvre cette stratégie, vous pouvez convertir de manière fiable un bitmap Java en un tableau d'octets, résolvant le problème rencontré avec copyPixelsToBuffer et produisant un tableau valide d'octets représentant l'image. .

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal