320 votes

conversion bitmap de Java au tableau d’octets

<pre><code></code><p><code></code></p><p>Qu’y a-t-il de mal avec ce code ?</p></pre>

707voto

Mezm Points 2628

Essayez quelque chose comme ceci:

 Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
 

20voto

Ted Hopp Points 122617

Avez-vous besoin de rembobiner la mémoire tampon, peut-être ?

En outre, cela peut se produire si la foulée (en octets) de l’image bitmap est supérieure à la longueur de la ligne en pixels * octets par pixel. Vérifiez la longueur de b.remaining() octets au lieu de la taille.

6voto

MindJuice Points 463

Votre tableau d’octets est trop petit. Chaque pixel occupe 4 octets, pas juste 1, donc multiplier votre taille * 4 pour que le tableau est assez grand.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X