/*************************************************************************************************************************************/ /* */ /* 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); \ }