Bonjour,
J'ai arrivé à compresser un tableau de type short* dans un fichier binaire avec l bibliothèque Zlib mais j'ai pas réussi de le décompresser pour continuer mes traitements.
Le problème que le contenu du tableau après décompression est toujours égale à 0 comme je l'ai initialisé .
Pouvez vous m'aider ? et Merci d'avance.
Compression:
Décompression:
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
22
23
24
25 int compressDataTable(long time, unsigned size, short** table) { char* fpath=(char*)calloc(100*sizeof(char), 1); sprintf(fpath,"C:\\Users\\xxxx\\Desktop\\time+Compresssion\\DFC_%ld.bin",time); short* dataContent = new short[imageWidth * imageHeight]; int cptr = 0; for (int i = 0; i < imageHeight; ++i) { for (int j = 0; j < imageWidth; ++j) { dataContent[cptr++] = table[i][j]; } } gzFile file = gzopen(fpath,"wb1"); if (file == NULL) return -1; int h = gzwrite(file, dataContent, sizeof(short) * size); gzclose(file); delete [] dataContent; return 0; }
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
22
23
24
25
26 int unCompressDataTable(const char* fpath, long time) { int size= (int)GetTailleFichier(fpath); gzFile file = gzopen(fpath,"rb"); if (file == NULL) return -1; short* dataContent = new short[imageWidth * imageHeight]; int h = gzread(file, dataContent, size /*sizeof(short) * (size)*/); int i = 0; for(int y=0; y < imageWidth; y++) { for ( int x = 0; x < imageHeight; x++ ) { table_tmp[x][y]=dataContent[i]; } i++; } gzclose(file); delete [] dataContent; return 0; }
Cordialement,
Partager