/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R A N G E M E N T   D ' U N E   I M A G E   V R A I E S   C O U L E U R S   A U   F O R M A T   ' SGI '  :                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Cette commande calcule une image                                                                               */
/*                  au format 'Silicon Graphics' dit "SGI"                                                                           */
/*                  a partir des trois composantes 'RVB'.                                                                            */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/SGI_store$K' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1993??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE
#include  image_image_CONTOURS_EXT
#include  image_image_ALPHABET_0_EXT
#include  image_image_ALPHABET_1_EXT
#include  image_image_ALPHABET_2_EXT
                                        /* L'include de 'image_image_ALPHABET_3_DEF' a ete supprime le 20110502094752...             */
#include  image_image_ALPHABET_3_EXT
#include  image_image_ALPHABET_4_EXT
                                        /* Introduit le 20161116111201...                                                            */
#include  image_image_ALPHABET_5_EXT
                                        /* Introduit le 20230516182726...                                                            */
#include  image_image_ALPHABET_6_EXT
                                        /* Introduit le 20240419175731...                                                            */
#include  image_image_ALPHABETS_EXT

#ifdef    __VERSION__COMPILER_LE_GRAPHIQUE_SILICON_GRAPHICS
#    include   image_drive_SiliG_FONCTION_2_EXT
#Aifdef   __VERSION__COMPILER_LE_GRAPHIQUE_SILICON_GRAPHICS
#Eifdef   __VERSION__COMPILER_LE_GRAPHIQUE_SILICON_GRAPHICS

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   RECUPERER_UNE_IMAGE_EN_VRAIES_COULEURS                                                                                        \
                    FAUX                                                                                                                \
                                        /* Faut-il recuperer une image en vraies couleurs ('VRAI)' c'est-a-dire dont les trois       */ \
                                        /* composantes ont la meme racine, ou bien trois images "independantes" ('FAUX'). La         */ \
                                        /* valeur par defaut est choisie pour assurer la compatibilite anterieure...                 */

#define   SIGNER                                                                                                                        \
                    FAUX                                                                                                                \
                                        /* Indique s'il faut signer ('VRAI') ou pas ('FAUX') l'image...                              */

#include  xci/signature.01.I"
                                        /* Caracteristiques de la signature...                                                       */

#define   SIGNER_AVEC_UNE_ESTAMPILLE                                                                                                    \
                    VRAI                                                                                                                \
                                        /* Indique s'il faut signer avec une estampille ('VRAI') ou avec la signature ('FAUX').      */

#define   LISIBLE                                                                                                                       \
                    VRAI                                                                                                                \
                                        /* Indique si l'estampille est minuscule ('FAUX') ou bien doit rester lisible ('VRAI').      */

#define   ABSCISSE_DE_LA_SIGNATURE                                                                                                      \
                    GRO2(INTER_POINT)                                                                                                   \
                                        /* Abscisse de la signature dans 'ImageR' (qui occupe un rectangle 11x5).                    */
#define   ORDONNEE_DE_LA_SIGNATURE                                                                                                      \
                    GRO2(INTER_POINT)                                                                                                   \
                                        /* Ordonnee de la signature dans 'ImageR' (qui occupe un rectangle 11x5).                    */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xci/signature.02.I"
#include  xci/signature.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R A N G E M E N T   D ' U N E   I M A G E   V R A I E S   C O U L E U R S   A U   F O R M A T   ' SGI '  :                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
                                        /* Nom de l'image a generer au format "SGI".                                                 */
     DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
                                        /* Nom de la racine d'une image en vraies couleurs.                                          */
     DEFV(CHAR,INIC(POINTERc(nom_imageAR),NOM_PIPE));
                                        /* Nom de l'image ROUGE a utiliser,                                                          */
     DEFV(CHAR,INIC(POINTERc(nom_imageAV),NOM_PIPE));
                                        /* Nom de l'image VERTE a utiliser,                                                          */
     DEFV(CHAR,INIC(POINTERc(nom_imageAB),NOM_PIPE));
                                        /* Nom de l'image BLEUE a utiliser.                                                          */
     DEFV(Logical,INIT(recuperer_une_image_en_vraies_couleurs,RECUPERER_UNE_IMAGE_EN_VRAIES_COULEURS));
                                        /* Faut-il recuperer une image en vraies couleurs ('VRAI)' c'est-a-dire dont les trois       */
                                        /* composantes ont la meme racine, ou bien trois images "independantes" ('FAUX'). La         */
                                        /* valeur par defaut est choisie pour assurer la compatibilite anterieure...                 */

#include  xci/signature.03.I"

     DEFV(Logical,INIT(signer_avec_une_estampille,SIGNER_AVEC_UNE_ESTAMPILLE));
                                        /* Indique s'il faut signer avec une estampille ('VRAI') ou avec la signature ('FAUX').      */
     DEFV(Logical,INIT(lisible,LISIBLE));
                                        /* Indique si l'estampille est minuscule ('FAUX') ou bien doit rester lisible ('VRAI').      */
     DEFV(pointI_2D,emplacement_normalise_de_la_signature_invisible);
     DEFV(pointF_2D,emplacement_de_la_signature_invisible);
                                        /* Donne le coin "bas-gauche" de l'estampille lorsqu'elle est demandee. Ces donnees sont     */
                                        /* normalisees telles que l'unite represente la taille de l'image. On notera que son         */
                                        /* initialisation est faite en nombre de points car, en effet, '$formatI' n'est alors        */
                                        /* pas connu...                                                                              */
     /*..............................................................................................................................*/

#ifdef    __VERSION__COMPILER_LE_GRAPHIQUE_SILICON_GRAPHICS
     INITIALISATION_POINT_2D(emplacement_normalise_de_la_signature_invisible,ABSCISSE_DE_LA_SIGNATURE,ORDONNEE_DE_LA_SIGNATURE);
                                        /* Initialisation de l'emplacement implicite de l'estampille...                              */

     GET_ARGUMENTSg(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR);
                         GET_ARGUMENT_C("imageA=""A=",nom_imageA);
                         GET_ARGUMENT_C("Rouge=""ROUGE=""AR=",nom_imageAR);
                         GET_ARGUMENT_C("Verte=""VERTE=""AV=",nom_imageAV);
                         GET_ARGUMENT_C("Bleue=""BLEUE=""AB=",nom_imageAB);
                         GET_ARGUMENT_L("RVB=",recuperer_une_image_en_vraies_couleurs);
                         GET_ARGUMENT_L("signer=",signer);
                         GET_ARGUMENT_P("fond=""f=",niveau_fond);
                         GET_ARGUMENT_P("signature=""s=",niveau_signature);
                         GET_ARGUMENT_I("taille=""T=",taille_des_caracteres_des_messages);
                         GET_ARGUMENT_L("estampiller=",signer_avec_une_estampille);
                         GET_ARGUMENT_L("lisible=",lisible);
                         GET_ARGUMENT_I("bibliotheque=",vecteurs_____num_bibliotheque);
                         GET_ARGUMENT_I("x=",ASD1(emplacement_normalise_de_la_signature_invisible,x));
                         GET_ARGUMENT_I("X=",ASD1(emplacement_normalise_de_la_signature_invisible,x));
                         GET_ARGUMENT_I("y=",ASD1(emplacement_normalise_de_la_signature_invisible,y));
                         GET_ARGUMENT_I("Y=",ASD1(emplacement_normalise_de_la_signature_invisible,y));
                         )
                    );

     INITIALISATION_POINT_2D(emplacement_de_la_signature_invisible
                            ,_____cNORMALISE_OX(ASD1(emplacement_normalise_de_la_signature_invisible,x))
                            ,_____cNORMALISE_OY(ASD1(emplacement_normalise_de_la_signature_invisible,y))
                             );
                                        /* Initialisation de l'emplacement implicite de l'estampille...                              */

     Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(Image_ROUGE,NOM_D_UNE_COMPOSANTE(nom_imageAR,c_ROUGE)))))
          Bblock
          Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(Image_VERTE,NOM_D_UNE_COMPOSANTE(nom_imageAV,c_VERTE)))))
               Bblock
               Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(Image_BLEUE,NOM_D_UNE_COMPOSANTE(nom_imageAB,c_BLEUE)))))
                    Bblock
                    SIGNATURE_GENERALE(Image_ROUGE);
                    SIGNATURE_GENERALE(Image_VERTE);
                    SIGNATURE_GENERALE(Image_BLEUE);
                                        /* Signature eventuelle de l'image...                                                        */

                    CALi(IGstore_image_au_format_SGI(nom_imageR
                                                    ,Image_ROUGE,Image_VERTE,Image_BLEUE
                                                     )
                         );
                                        /* Conversion : 'RVB' --> 'SGI'.                                                             */
                    Eblock
               ATes
                    Bblock
                    Test__CODE_ERREUR__ERREUR07;
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Test__CODE_ERREUR__ERREUR07;
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test__CODE_ERREUR__ERREUR07;
          Eblock
     ETes

#Aifdef    __VERSION__COMPILER_LE_GRAPHIQUE_SILICON_GRAPHICS
     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(VIDE;
                         )
                    );

     PRINT_ATTENTION("cette commande est ineffective sur ce SYSTEME");
#Eifdef    __VERSION__COMPILER_LE_GRAPHIQUE_SILICON_GRAPHICS

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.