/*************************************************************************************************************************************/
/* */
/* C O M P R E S S I O N / D E C O M P R E S S I O N " R U N - L E N G T H E N C O D I N G 01 " */
/* E N L O N G U E U R F I X E : */
/* */
/* */
/* Author of '$xrC/CompressionDeCompressionRunLengthEncoding.01$vv$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20130925113017). */
/* */
/*************************************************************************************************************************************/
#include "CompressionDeCompressionRunLengthEncodingGeneral.01.vv.I"
#define ENREGISTREMENT_D_UNE_SUITE_DE_REPETITIONS \
{ \
ImageCompactee[JImageCompactee+0]=CompteurRepetitions; \
ImageCompactee[JImageCompactee+1]=CaracterePrecedent; \
JImageCompactee=JImageCompactee+2; \
}
#define COMPRESSION_RUN_LENGTH_ENCODING_01_DU_FICHIER_R \
{ \
COMPRESSION_RUN_LENGTH_ENCODING_DU_FICHIER_R(2,(CompteurRepetitions < BLANC)); \
}
#define DECOMPRESSION_RUN_LENGTH_ENCODING_01_DU_FICHIER_R \
{ \
TypeImage *ImageCompactee=malloc(longueur); \
TypeImage DEFINITION_IMAGE(ImageDecompactee,dimY,dimX); \
\
long int DimensionImageEffective=0; \
long int JImageADeCompacter; \
\
LECTURE_FICHIER(ImageCompactee,longueur); \
\
x=Xmin; \
y=Ymin; \
\
for (JImageADeCompacter=0 ; JImageADeCompacter < NombreOctetsLus ; JImageADeCompacter=JImageADeCompacter+2) \
{ \
long int compteur; \
\
for (compteur=1 ; compteur <= ImageCompactee[JImageADeCompacter+0] ; compteur++) \
{ \
GENERATION_D_UNE_SUITE_DE_REPETITIONS(ImageCompactee[JImageADeCompacter+1]); \
} \
} \
\
if (DimensionImageEffective < DimImages) \
{ \
fprintf(stderr,"Pas assez de points generes lors du decompactage RLE1.\n"); \
} \
else \
{ \
if (DimensionImageEffective > DimImages) \
{ \
fprintf(stderr,"Trop de points generes lors du decompactage RLE1.\n"); \
} \
else \
{ \
} \
} \
\
ECRITURE_FICHIER(ImageDecompactee,DimensionImageEffective); \
\
free(ImageCompactee); \
}