/*************************************************************************************************************************************/
/* */
/* E D I T I O N H E X A _ D E C I M A L E D ' U N E I M A G E : */
/* */
/* */
/* Definition : */
/* */
/* Cette commande affiche en hexa- */
/* decimal l'image argument, cette */
/* edition pouvant etre en PostScript. */
/* La pre-visualisation d'un fichier */
/* PostScript sur un ecran pourra se */
/* faire grace a : */
/* */
/* /users/com/ghostview sur 'SYSTEME_HP7??_HPUX', */
/* /usr/sbin/xpsview sur 'SYSTEME_SGIND???_IRIX'. */
/* */
/* */
/* Author of '$xci/dumpx$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1987??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 20110502094914... */
#include image_image_ALPHABET_3_EXT
#include image_image_ALPHABET_4_EXT
/* Introduit le 20161116111334... */
#include image_image_ALPHABET_5_EXT
/* Introduit le 20230516182946... */
#include image_image_ALPHABET_6_EXT
/* Introduit le 20240419175922... */
#include image_image_ALPHABETS_EXT
#include image_drive_alpha_FONCTION_EXT
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#define EDITER_DU_PostScript \
VRAI \
/* Indique s'il faut un dump hexa-decimal ('FAUX') ou PostScript ('VRAI'). */
#define FAIRE_UN_DUMP_NUMERIQUE \
VRAI \
/* Indique s'il faut un dump numerique ('VRAI') ou un dump "caractere" ('FAUX') dans le */ \
/* cas ou 'IL_NE_FAUT_PAS(editer_du_PostScript)' (introduit le 20081216113825). */
#define FAIRE_UN_DUMP_HEXA_DECIMAL \
VRAI \
/* Indique s'il faut un dump hexa-decimal ('VRAI') ou un dump decimal ('FAUX') dans le */ \
/* cas ou 'IL_NE_FAUT_PAS(editer_du_PostScript)' (introduit le 20070620104755). */
#define SIGNER \
VRAI \
/* Indique s'il faut signer ('VRAI') ou pas ('FAUX') l'image... */
#include xci/signature.01.I"
/* Caracteristiques de la signature... */
#define L_IMAGE_EST_EN_COULEURS \
VRAI \
/* Indique si l'image est en Noir et Blanc ('FAUX') ou en couleurs ('VRAI'), cette option */ \
/* n'ayant de sens qu'avec PostScript... */
#define TRANSLATION_HORIZONTALE \
SOIXANTE_QUATRE
#define TRANSLATION_VERTICALE \
CENT
/* Translations horizontale et verticale de l'image en sortie. */
#define ECHELLE_HORIZONTALE \
dimX
#define ECHELLE_VERTICALE \
dimY
/* Echelles horizontale et verticale de l'image en sortie. On notera que ces deux Arguments */
/* n'ont d'interet que sur certaines machines (par exemple 'LACT21'...) et pour la sortie */
/* 'PostScript'... */
#define OPTIMISER_LA_CONVERSION_PostScript \
VRAI \
/* Indique s'il faut editer les points d'une composante un a un ('FAUX') ou par paquet */ \
/* d'une ligne ('VRAI'). */
#define NOMBRE_D_EXEMPLAIRES \
UN \
/* Indique le nombre d'exemplaires a imprimer... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/signature.02.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D U M P H E X A - D E C I M A L D ' U N E I M A G E : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
/* Nom de l'image a displayer en Noir et Blanc. */
DEFV(CHAR,INIC(POINTERc(nom_imageAR),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageAV),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageAB),NOM_PIPE));
/* Nom de l'image a displayer en couleurs. */
DEFV(Logical,INIT(editer_du_PostScript,EDITER_DU_PostScript));
/* Indique s'il faut un dump hexa-decimal ('FAUX') ou PostScript ('VRAI'). */
DEFV(Logical,INIT(faire_un_dump_numerique,FAIRE_UN_DUMP_NUMERIQUE));
/* Indique s'il faut un dump numerique ('VRAI') ou un dump "caractere" ('FAUX') dans le */
/* cas ou 'IL_NE_FAUT_PAS(editer_du_PostScript)' (introduit le 20081216113825). */
DEFV(Logical,INIT(faire_un_dump_hexa_decimal,FAIRE_UN_DUMP_HEXA_DECIMAL));
/* Indique s'il faut un dump hexa-decimal ('VRAI') ou un dump decimal ('FAUX') dans le */
/* cas ou 'IL_NE_FAUT_PAS(editer_du_PostScript)' (introduit le 20070620104755). */
#include xci/signature.03.I"
DEFV(Logical,INIT(l_image_est_en_couleurs,L_IMAGE_EST_EN_COULEURS));
/* Indique si l'image est en Noir et Blanc ('FAUX') ou en couleurs ('VRAI'), cette option */
/* n'ayant de sens qu'avec PostScript... */
DEFV(Int,INIT(translation_horizontale,TRANSLATION_HORIZONTALE));
DEFV(Int,INIT(translation_verticale,TRANSLATION_VERTICALE));
/* Translations horizontale et verticale de l'image en sortie. */
DEFV(Int,INIT(echelle_horizontale,UNDEF));
DEFV(Int,INIT(echelle_verticale,UNDEF));
/* Echelles horizontale et verticale de l'image en sortie. On notera que ces deux Arguments */
/* n'ont d'interet que sur certaines machines (par exemple 'LACT21'...) et pour la sortie */
/* 'PostScript'... */
DEFV(Logical,INIT(optimiser_la_conversion_PostScript,OPTIMISER_LA_CONVERSION_PostScript));
/* Indique s'il faut editer les points d'une composante un a un ('FAUX') ou par paquet */
/* d'une ligne ('VRAI'). */
DEFV(Positive,INIT(nombre_d_exemplaires,NOMBRE_D_EXEMPLAIRES));
/* Indique le nombre d'exemplaires a imprimer... */
/*..............................................................................................................................*/
GET_ARGUMENTSg(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_C("imageAR=""AR=",nom_imageAR);
GET_ARGUMENT_C("imageAV=""AV=",nom_imageAV);
GET_ARGUMENT_C("imageAB=""AB=",nom_imageAB);
GET_ARGUMENT_L("ps=""PostScript=",editer_du_PostScript);
GET_ARGUMENT_L("numerique=""num=",faire_un_dump_numerique);
GET_ARGUMENT_N("caractere=""cara=",faire_un_dump_numerique);
/* Parametres introduits le 20081216113825... */
GET_ARGUMENT_L("hexa_decimal=""hd=",faire_un_dump_hexa_decimal);
GET_ARGUMENT_N("decimal=""d=",faire_un_dump_hexa_decimal);
GET_ARGUMENT_L("BoundingBox=",IPostScript_image_____inserer_la_BoundingBox_dans_le_fichier);
/* Parametres introduits le 20090130130609... */
GET_ARGUMENT_L("PageSize=",IPostScript_image_____inserer_le_PageSize_dans_le_fichier);
/* Parametres introduits le 20090130132230... */
GET_ARGUMENT_L("en_tete_caractere=""ec=",Idumpc_image_____editer_le_message_d_introduction);
GET_ARGUMENT_L("en_tete_decimal=""e10=",Idumpd_image_____editer_le_message_d_introduction);
GET_ARGUMENT_L("en_tete_hexa_decimal=""e16=",Idumpx_image_____editer_le_message_d_introduction);
GET_ARGUMENT_I("version=""v=",IPostScript_image_____version_du_PostScript);
GET_ARGUMENT_L("signer=",signer);
GET_ARGUMENT_L("estampiller=",Isignature_____en_fait_estampiller);
GET_ARGUMENT_L("lisible=",Isignature_____l_estampille_doit_etre_lisible);
/* Ces deux options ont ete introduites le 20050310170317... */
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_I("bibliotheque=",vecteurs_____num_bibliotheque);
GET_ARGUMENT_L("RVB=",l_image_est_en_couleurs);
GET_ARGUMENT_I("Tx=",translation_horizontale);
GET_ARGUMENT_I("Ty=",translation_verticale);
GET_ARGUMENT_L("conserver_echelles=""conserver=""cehv="
,IPostScript_image_____conserver_les_echelles_horizontale_et_verticale
);
GIT_ARGUMENT_I("Ex=",echelle_horizontale,ECHELLE_HORIZONTALE);
GIT_ARGUMENT_I("Ey=",echelle_verticale,ECHELLE_VERTICALE);
GET_ARGUMENT_L("optimiser=",optimiser_la_conversion_PostScript);
GET_ARGUMENT_I("exemplaires=",nombre_d_exemplaires);
GET_ARGUMENT_L("niveau_coordonnees=""nc=",Idumpx_image_____editer_sous_la_forme_niveau_coordonnees_X_et_Y);
GET_ARGUMENT_L("somme_difference=""sd="
,Idumpx_image_____editer_sous_la_forme_niveau_coordonnees_X_et_Y_somme_difference
);
GET_ARGUMENT_L("combinaison_lineaire=""cl="
,Idumpx_image_____former_une_combinaison_lineaire_des_coordonnees_X_et_Y
);
GET_ARGUMENT_L("zeros=""zs=",Idumpx_image_____mettre_des_zeros_devant_les_coordonnees_X_et_Y);
GET_ARGUMENT_L("signe=",Idumpx_image_____les_valeurs_sont_signees);
/* Parametres introduits le 20151210102640 et completes le 20151213103624, puis le */
/* 20151215095203... */
/* */
/* Voir la commande 'v $xrv/anti_dumpx$K' qui permet a priori de reconstituer l'image */
/* decrite par les listes niveau/index ainsi generees... */
GET_ARGUMENT_K("separateur=""sep=",PREMIER_CARACTERE_ITb0(Idumpx_image_____separateur__niveau_index));
/* Parametre introduit le 20151211150819... */
)
);
Test(IL_FAUT(Idumpx_image_____editer_sous_la_forme_niveau_coordonnees_X_et_Y))
/* Test introduit le 20151210102640... */
Bblock
Test(IL_FAUT(editer_du_PostScript))
Bblock
PRINT_ATTENTION("l'edition sous forme 'niveau/coordonnees' exclue le 'PostScript'");
EGAL(editer_du_PostScript,FAUX);
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(editer_du_PostScript))
Bblock
Test(IFET(IFNE(IPostScript_image_____version_du_PostScript,PostScript_Version_2)
,IFNE(IPostScript_image_____version_du_PostScript,PostScript_Version_3)
)
)
Bblock
PRINT_ERREUR("la version demandee pour le 'PostScript' n'existe pas");
CAL1(Prer1("(%d etait demandee, "
,IPostScript_image_____version_du_PostScript
)
);
EGAL(IPostScript_image_____version_du_PostScript,PostScript_Version_2);
CAL1(Prer1("%d est forcee)\n"
,IPostScript_image_____version_du_PostScript
)
);
Eblock
ATes
Bblock
Eblock
ETes
Test(EST_FAUX(l_image_est_en_couleurs))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA,nom_imageA))))
Bblock
SIGNATURE(ImageA);
/* Signature eventuelle de l'image... */
CALS(IPostScript_image_Noir_et_Blanc(ImageA
,translation_horizontale
,translation_verticale
,echelle_horizontale
,echelle_verticale
,optimiser_la_conversion_PostScript
,nombre_d_exemplaires
)
);
/* Sortie de l'image au format "image" de 'PostScript' en Noir et Blanc. */
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
Eblock
ATes
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(Image_ROUGE,nom_imageAR))))
Bblock
/* Chargement de la premiere image Argument. */
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(Image_VERTE,nom_imageAV))))
Bblock
/* Chargement de la deuxieme image Argument. */
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(Image_BLEUE,nom_imageAB))))
Bblock
/* Chargement de la troisieme image Argument. */
SIGNATURE(Image_ROUGE);
SIGNATURE(Image_VERTE);
SIGNATURE(Image_BLEUE);
/* Signature eventuelle de l'image... */
CALS(IPostScript_image_en_vraies_couleurs(Image_ROUGE
,Image_VERTE
,Image_BLEUE
,translation_horizontale
,translation_verticale
,echelle_horizontale
,echelle_verticale
,optimiser_la_conversion_PostScript
,nombre_d_exemplaires
)
);
/* Sortie de l'image au format "image" de 'PostScript' en couleurs. */
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
Eblock
ETes
Eblock
ATes
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA,nom_imageA))))
Bblock
Test(IL_FAUT(faire_un_dump_numerique))
Bblock
/* Test introduit le 20081216113825... */
Test(IL_FAUT(faire_un_dump_hexa_decimal))
Bblock
CALS(Idumpx_image(ImageA));
/* Sortie de l'image sous forme d'un dump hexa-decimal. */
Eblock
ATes
Bblock
CALS(Idumpd_image(ImageA));
/* Sortie de l'image sous forme d'un dump decimal. */
Eblock
ETes
Eblock
ATes
Bblock
CALS(Idumpc_image(ImageA));
/* Sortie de l'image sous forme d'un dump caractere (introduit le 20081216113825). */
Eblock
ETes
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
Eblock
ETes
RETU_Commande;
Eblock
ECommande