bonjour !
je cherche a reconstituer une image a partir d'un tableau de bytes (comme le titre l'indique)
ce code me permet de stocké mon image (contenue dans un .zip appelé "file") dans un tableau de bytes. Ce code fonctionne trés bien pour un fichier texte que j'arrive à lire et à afficher pafaitement ensuite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 final ZipInputStream zis = new ZipInputStream(new FileInputStream(file)); ZipEntry ze; byte buf[]; // Parcourt tous les fichiers while (null != (ze = zis.getNextEntry())) { buf = new byte[(int)ze.getSize()]; int off = 0; // Début de l'écriture int len = buf.length; // Nombre d'élément à écrire int read = 0; // Nombre d'élément lu while ( (len>0) && (read = zis.read(buf, off, len))>0 ) { off += read; len -= read; } }
je récupere mon image a partir du byte[], comme celà :
ou bien comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //methode utilisant les librairie Android (android.graphics.Bitmap & android.graphics.BitmapFactory) Bitmap bitmap = BitmapFactory.decodeByteArray(buf,0,buf.length);
mai pour les deux methode j'ai le meme resultat, mon image (que jaffiche, c'est plus pratique) est penchée vers la droite d'environ 50°... (les pixel qui manquent sont alor répétés de l'autre coté horizontalement (je m'explique bien?))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 InputStream is = new ByteArrayInputStream(buf);
je pense que ceci est due a la decompression et a l'écriture(ou la lecture) du byte[] qui est mal faite car une image ouverte directement d'un fichier s'affiche normalement...
pouvez vous m'aider?
je vou remerci d'avance pour toute aide que vous pourrez m'apporter.
Partager