/*************************************************************************************************************************************/ /* */ /* M U L T I P L E X A G E ( 8 , 8 , 8 ) D ' U N E I M A G E */ /* E N V R A I E S C O U L E U R S ( R , V , B ) : */ /* */ /* */ /* Definition : */ /* */ /* Cette commande multiplexe les trois */ /* composantes 'RVB' d'une image. */ /* */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * ** * * * * * ** * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * ** * * * * * ** */ /* * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* */ /* ATTENTION : */ /* */ /* Il pourra etre necessaire de faire */ /* apres '$xci/RVB_store$X' un 'SwapB' */ /* ('v $xiMo/creation$Z SwapB') si le */ /* fichier '$RVB' est destine a '$CONVERT' */ /* car, en effet, 'v $xci/RVB_store$K' ecrit */ /* des images au format 'imageI' dont l'unite */ /* est donc de type 'Int', alors que '$CONVERT' */ /* lit les fichiers octets par octets, d'ou la */ /* necessite de la permutation par 'SwapB', soit : */ /* */ /* $xci/RVB_store$X --> SwapB --> $CONVERT */ /* */ /* donc... */ /* */ /* */ /* Author of '$xci/RVB_store$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20001102152358). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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_QUAD_IMAGE_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 20110502094529... */ #include image_image_ALPHABET_3_EXT #include image_image_ALPHABET_4_EXT /* Introduit le 20161116111054... */ #include image_image_ALPHABET_5_EXT /* Introduit le 20230516182826... */ #include image_image_ALPHABET_6_EXT /* Introduit le 20240419175700... */ #include image_image_ALPHABETS_EXT /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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" /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M U L T I P L E X A G E ( 8 , 8 , 8 ) D ' U N E I M A G E */ /* E N V R A I E S C O U L E U R S ( R , V , B ) : */ /* */ /*************************************************************************************************************************************/ 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... */ /*..............................................................................................................................*/ 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_L("f_X______compatibilite_20090516=""compatibilite_20090516=",f_X______compatibilite_20090516); /* Argument introduit le 20090516192509... */ 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("amrWWW=""site=""Internet=" ,Isignature_invisible_____a_la_signature_lisible_faut_il_ajouter_amrWWW ); /* Parametre introduit le 20090113133257... */ GET_ARGUMENT_L("lisible=",lisible); GET_ARGUMENT_P("signature_invisible=""si=",f_X______niveau_de_marquage_de_la_signature_invisible); GET_ARGUMENT_P("bord_signature_invisible=""bsi=",f_X______niveau_du_bord_de_la_signature_invisible); /* Parametres relatifs a 'f_X_(...)' introduits le 20090517090447... */ GET_ARGUMENT_I("epaisseur_signature=""es=",f_X______epaisseur_de_la_signature); /* Les arguments d'epaississement de la signature ont ete introduits le 20091215101556... */ GET_ARGUMENT_I("bibliotheque=",vecteurs_____num_bibliotheque); GET_ARGUMENT_I("x=""X=",ASD1(emplacement_normalise_de_la_signature_invisible,x)); GET_ARGUMENT_I("y=""Y=",ASD1(emplacement_normalise_de_la_signature_invisible,y)); GET_ARGUMENT_P("alpha=""ALPHA=",Imultiplexage_888_RVB_____composante_ALPHA); ) ); 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 BDEFV(imageUB,image_a_multiplexer); /* Image a multiplexer. */ SIGNATURE_GENERALE(Image_ROUGE); SIGNATURE_GENERALE(Image_VERTE); SIGNATURE_GENERALE(Image_BLEUE); /* Signature eventuelle de l'image... */ CALS(Imultiplexage_888_RVB(image_a_multiplexer ,Image_ROUGE,Image_VERTE,Image_BLEUE ) ); /* Multiplexage. */ CALi(IupdateUB_image(nom_imageR,image_a_multiplexer)); EDEFV(imageUB,image_a_multiplexer); /* Image a multiplexer. */ 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 RETU_Commande; Eblock ECommande