/*************************************************************************************************************************************/ /* */ /* P A S S A G E D E S F A U S S E S A U X V R A I E S C O U L E U R S : */ /* */ /* */ /* Definition : */ /* */ /* Cette commande calcule les trois */ /* composantes en vraies couleurs de */ /* l'image Argument. */ /* */ /* */ /* Author of '$xci/vraies_C$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1989??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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_QUAD_IMAGE_EXT /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #define GENERER_UNE_IMAGE_EN_VRAIES_COULEURS \ FAUX \ /* Faut-il generer 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 GENERER_LA_COMPOSANTE_ROUGE \ VRAI #define GENERER_LA_COMPOSANTE_VERTE \ VRAI #define GENERER_LA_COMPOSANTE_BLEUE \ VRAI #define GENERER_LA_LUMINANCE \ FAUX /* Indicateurs precisant s'il faut generer ('VRAI') ou pas ('FAUX') la composante */ /* chromatique correspondante. La possibilite de generer la luminance a ete introduite */ /* le 20131205111957... */ #define TRANSLATER_LE_NOIR \ LE_NOIR_N_EST_PAS_TRANSLATABLE \ /* Indique si le niveau 'NOIR' est translatable ou pas... */ #define INCREMENT_DES_NIVEAUX \ ZERO \ /* Lorsque les niveaux doivent "tourner", on trouve ici l'increment des couleurs... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #include xci/vraies_C.01.I" #include xci/luminance.01.I" /* Introduit le 20060716112953... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A S S A G E D E S F A U S S E S A U X V R A I E S C O U L E U R S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE)); /* Nom de l'image a displayer. */ DEFV(CHAR,INIC(POINTERc(nom_paletteA),NOM_PIPE)); /* Nom de la palette a utiliser. */ DEFV(CHAR,INIC(POINTERc(nom_imagesR),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); /* Nom de la racine d'une image en vraies couleurs. */ DEFV(CHAR,INIC(POINTERc(nom_imageRR),NOM_PIPE)); /* Nom de l'image ROUGE a generer, */ DEFV(CHAR,INIC(POINTERc(nom_imageRV),NOM_PIPE)); /* Nom de l'image VERTE a generer, */ DEFV(CHAR,INIC(POINTERc(nom_imageRB),NOM_PIPE)); /* Nom de l'image BLEUE a generer, */ DEFV(CHAR,INIC(POINTERc(nom_imageRL),NOM_PIPE)); /* Nom de l'image LUMINANCE a generer. */ DEFV(Logical,INIT(generer_une_image_en_vraies_couleurs,GENERER_UNE_IMAGE_EN_VRAIES_COULEURS)); /* Faut-il generer 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... */ DEFV(Logical,INIT(generer_la_composante_ROUGE,GENERER_LA_COMPOSANTE_ROUGE)); DEFV(Logical,INIT(generer_la_composante_VERTE,GENERER_LA_COMPOSANTE_VERTE)); DEFV(Logical,INIT(generer_la_composante_BLEUE,GENERER_LA_COMPOSANTE_BLEUE)); DEFV(Logical,INIT(generer_la_luminance,GENERER_LA_LUMINANCE)); /* Indicateurs precisant s'il faut genere ('VRAI') ou pas ('FAUX') la composante */ /* chromatique correspondante. La possibilite de generer la luminance a ete introduite */ /* le 20131205111957... */ DEFV(Logical,INIT(translater_le_NOIR,TRANSLATER_LE_NOIR)); /* Indique si le niveau 'NOIR' est translatable ou pas... */ DEFV(Int,INIT(increment_des_niveaux,INCREMENT_DES_NIVEAUX)); /* Lorsque les niveaux doivent "tourner", on trouve ici l'increment des couleurs... */ /*..............................................................................................................................*/ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_C("Rouge=""RR=""ROUGE=",nom_imageRR); GET_ARGUMENT_C("Verte=""VERTE=""RV=",nom_imageRV); GET_ARGUMENT_C("RB=""Bleue=""BLEUE=",nom_imageRB); GET_ARGUMENT_C("RL=""Luminance=""LUMINANCE=",nom_imageRL); /* Arguments introduits le 20131205111957... */ GET_ARGUMENT_L("RVB=",generer_une_image_en_vraies_couleurs); GET_ARGUMENT_L("genereR=""gROUGE=""gR=",generer_la_composante_ROUGE); GET_ARGUMENT_L("genereV=""gVERTE=""gV=",generer_la_composante_VERTE); GET_ARGUMENT_L("genereB=""gBLEUE=""gB=",generer_la_composante_BLEUE); GET_ARGUMENT_L("genereL=""gLUMINANCE=""gL=",generer_la_luminance); /* Arguments introduits le 20131205111957. Les abreviations {"gR=","gV=","gB=","gL="} ont */ /* ete introduites le 20231202134854 pour 'v $xiirf/.FRC2.52.3.$U .xci.vraies_C.X'... */ GET_ARGUMENT_C("paletteA=""palette=""pA=""p=",nom_paletteA); GET_ARGUMENT_L("translater_le_NOIR=""noir=""NOIR=",translater_le_NOIR); GET_ARGUMENT_I("increment=""i=",increment_des_niveaux); ) ); Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA,nom_imageA)))) Bblock CALS(Iload_palette_de_couleurs(nom_paletteA,ESPACE_DE_COULEURS_RVB)); /* Chargement de la palette de couleurs... */ PUSH_OPTIMISATION; SET_OPTIMISATION(VRAI); /* Afin de ne passer que par les listes de substitution... */ CALS(Ivraies_couleurs(Image_ROUGE,Image_VERTE,Image_BLEUE ,ImageA ,generer_la_composante_ROUGE,generer_la_composante_VERTE,generer_la_composante_BLEUE ,increment_des_niveaux ,translater_le_NOIR ) ); /* Passage des fausses aux vraies couleurs via la palette courante. */ PULL_OPTIMISATION; Test(IL_FAUT(generer_la_luminance)) /* Test introduit le 20131205111957... */ Bblock CALS(Iluminance(ImageR,Image_ROUGE,Image_VERTE,Image_BLEUE)); /* Passage des fausses aux vraies couleurs via la palette courante. */ CALi(Iupdate_image(nom_imageRL,ImageR)); Eblock ATes Bblock GENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES_RVB(nom_imageR,nom_imageRR,nom_imageRV,nom_imageRB) /* Introduit le 20060716112953 afin de permettre un "RVB=VRAI" implicite... */ Test(IL_FAUT(generer_la_composante_ROUGE)) Bblock GENERATION_D_UNE_COMPOSANTE(nom_imageRR,c_ROUGE,Image_ROUGE); Eblock ATes Bblock Eblock ETes Test(IL_FAUT(generer_la_composante_VERTE)) Bblock GENERATION_D_UNE_COMPOSANTE(nom_imageRV,c_VERTE,Image_VERTE); Eblock ATes Bblock Eblock ETes Test(IL_FAUT(generer_la_composante_BLEUE)) Bblock GENERATION_D_UNE_COMPOSANTE(nom_imageRB,c_BLEUE,Image_BLEUE); Eblock ATes Bblock Eblock ETes Eblock ETes Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes RETU_Commande; Eblock ECommande