/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E T U D E   D E   L A   C O M P L E X I T E   S T R U C T U R E L L E                                                      */
/*        D ' U N   P O R T R A I T   R E E L   ( L E N A )  :                                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrC/ObjetComplexe.T____1$vv$c' :                                                                               */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20130729092921).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    COMMENTS
#         undef     COMMENTS
#else
#endif

#define   COMMENTS  "Portrait reel -Lena- (format octet) -luminance-"

#define   DEFINE_01 "-DNOMBRE_PAVE_X=1  -DNOMBRE_PAVE_Y=1"
#define   DEFINE_02 "-DNOMBRE_PAVE_X=2  -DNOMBRE_PAVE_Y=2"
#define   DEFINE_03 "-DNOMBRE_PAVE_X=3  -DNOMBRE_PAVE_Y=3"
#define   DEFINE_04 "-DNOMBRE_PAVE_X=4  -DNOMBRE_PAVE_Y=4"
#define   DEFINE_05 "-DNOMBRE_PAVE_X=5  -DNOMBRE_PAVE_Y=5"
#define   DEFINE_06 "-DNOMBRE_PAVE_X=6  -DNOMBRE_PAVE_Y=6"
#define   DEFINE_07 "-DNOMBRE_PAVE_X=7  -DNOMBRE_PAVE_Y=7"
#define   DEFINE_08 "-DNOMBRE_PAVE_X=8  -DNOMBRE_PAVE_Y=8"
#define   DEFINE_09 "-DNOMBRE_PAVE_X=9  -DNOMBRE_PAVE_Y=9"
#define   DEFINE_10 "-DNOMBRE_PAVE_X=10 -DNOMBRE_PAVE_Y=10"
#define   DEFINE_11 "-DNOMBRE_PAVE_X=11 -DNOMBRE_PAVE_Y=11"
#define   DEFINE_12 "-DNOMBRE_PAVE_X=12 -DNOMBRE_PAVE_Y=12"
#define   DEFINE_13 "-DNOMBRE_PAVE_X=13 -DNOMBRE_PAVE_Y=13"
#define   DEFINE_14 "-DNOMBRE_PAVE_X=14 -DNOMBRE_PAVE_Y=14"
#define   DEFINE_15 "-DNOMBRE_PAVE_X=15 -DNOMBRE_PAVE_Y=15"
#define   DEFINE_16 "-DNOMBRE_PAVE_X=16 -DNOMBRE_PAVE_Y=16"

#include  "images_1octet.01.vv.I"

#ifndef   NOMBRE_PAVE_X
#         define    NOMBRE_PAVE_X                                                                                                       \
                              (4)
#else
#endif

#ifndef   NOMBRE_PAVE_Y
#         define    NOMBRE_PAVE_Y                                                                                                       \
                              (4)
#else
#endif

int       nombre_pave_X=NOMBRE_PAVE_X;
int       nombre_pave_Y=NOMBRE_PAVE_Y;

#define   NOM_DE_L_IMAGE_RELLE                                                                                                          \
                    xiirC"IMAGE_REELLE.LENA.11"

TypeImage image_reelle[]={
#include  "ChaineOctetsUniformesAlternees_1024x1024.08.vv.I"
                         };
                                        /* Cette facon de faire (lineariser l'image) est destinee a faire que le source, commme      */
                                        /* binaire non executable, aient des longueurs proportionnelles a la taille de l'image).     */
                                        /* On notera de plus que cette chaine ne peut etre nulle (voire uniforme), c'est pourquoi    */
                                        /* la repetition {0,1} est utilisee...                                                       */

MAIN(
          {
          int       pave_X=DIVI(dimX,nombre_pave_X);
          int       pave_Y=DIVI(dimY,nombre_pave_Y);

          TypeImage image_temporaire[dimY][dimX];

          ACCES_IMAGE_REELLE(NOM_DE_L_IMAGE_RELLE);

          for       (y=Ymin ; y <= Ymax ; y=ADD2(y,1))
                    {
                    for       (x=Xmin ; x <= Xmax ; x=ADD2(x,1))
                              {
                              int       xQ=DIVI(SOUS(x,Xmin),pave_X);
                              int       xR=REST(SOUS(x,Xmin),pave_X);
                              int       yQ=DIVI(SOUS(y,Ymin),pave_Y);
                              int       yR=REST(SOUS(y,Ymin),pave_Y);
                              int       xp;
                              int       yp;

                              xp=ADD2(ADD2(xQ,MUL2(nombre_pave_X,xR)),Xmin);
                              yp=ADD2(ADD2(yQ,MUL2(nombre_pave_Y,yR)),Ymin);

                              if        ((xp <= Xmax) && (yp <= Ymax))
                                        {
                                        gSTORE_IMAGE_PLAN(image_temporaire,x,y,LOAD_IMAGE_PLAN_BIT_OCTET(xp,yp));
                                        }
                              else
                                        {
                                        }
                              }
                    }

          INITIALISATION_IMAGE(gLOAD_IMAGE_PLAN_BIT_OCTET(image_temporaire,x,y));

          SORTIE_DU_FICHIER_IMAGE;
          EDITER_LES_COMPTEURS_DES_FONCTIONS;
          }
     )



Copyright © Jean-François Colonna, 2013-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2013-2021.