[Zlib] Décompression d'un tableau de type SHORT à partir d'un fichier binaire
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:
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:
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,