/*************************************************************************************************************************************/
/* */
/* 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