reconstitution d'une image a partir d'un tableau de bytes
bonjour !
je cherche a reconstituer une image a partir d'un tableau de bytes (comme le titre l'indique)
Code:
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;
}
} |
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.
je récupere mon image a partir du byte[], comme celà :
Code:
1 2 3 4 5
|
//methode utilisant les librairie Android
(android.graphics.Bitmap & android.graphics.BitmapFactory)
Bitmap bitmap = BitmapFactory.decodeByteArray(buf,0,buf.length); |
ou bien comme cela :
Code:
1 2
|
InputStream is = new ByteArrayInputStream(buf); |
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?))
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.