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:

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;
}
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
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,