Vous êtes sur la page 1sur 3

/* Copyright (C) 09/04/2003 A. Crouzil LIMaCE release 1.

4142 */
/* Debugging : N. Begue (15/05/2001), G. Jaffre (08/05/2002),
* B. Pailhes (02/04/2003), F. Courteille (09/04/2003)
*/
#ifndef __limace_h_
#define __limace_h_

#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

/*************** GESTION DE L'AFFICHAGE DES MESSAGES D'ERREUR ****************/

#define ON 1
#define OFF 0

/* Commutateur d'affichage des messages d'erreurs sur stderr.


* A chaque appel de la fonction on passe d'un etat a l'autre :
* - ON : les messages d'erreurs sont affiches sur stdout (par defaut)
* - OFF : aucun message d'erreur n'est affiche
* Verbose retourne le nouvel etat (ON ou OFF)
*/
extern int Verbose(void);

#ifdef __cplusplus
}
#endif

/************************** MANIPULATION D'IMAGES ****************************/

/* Le type "prive" Image


*/
typedef struct Image *Image;

/* Types d'image
*/
typedef enum
{
BitMap=0, /* image noir=0 et blanc=1 [0,1] */
GrayLevel=1, /* image de niveaux de gris [0,255] */
Color=2 /* image couleur RGB [0,255]x[0,255]x[0,255] */
} ImageType;

#ifdef __cplusplus
extern "C" {
#endif

/* Creation d'une image. Retourne NULL si probleme.


*/
extern Image ImAlloc(ImageType Type, int NbRow, int NbCol);
/* Creation d'une image initialisee a 0. Retourne NULL si probleme.
*/
extern Image ImCAlloc(ImageType Type, int NbRow, int NbCol);

/* Retourne le type d'une image (BitMap, GrayLevel, Color)


*/
extern ImageType ImType(Image Im);

/* Retourne le nombre de lignes d'une image, 0 si probleme


*/
extern int ImNbRow(Image Im);

/* Retourne le nombre de colonnes d'une image, 0 si probleme


*/
extern int ImNbCol(Image Im);

/* Acces a la matrice des niveaux de gris d'une image de type GrayLevel ou


* BitMap
* Retourne NULL si probleme
*/
extern unsigned char **ImGetI(Image Im);

/* Acces a la matrice du plan R d'une image de type Color


* Retourne NULL si probleme
*/
extern unsigned char **ImGetR(Image Im);

/* Acces a la matrice du plan G d'une image de type Color


* Retourne NULL si probleme
*/
extern unsigned char **ImGetG(Image Im);

/* Acces a la matrice du plan B d'une image de type Color


* Retourne NULL si probleme
*/
extern unsigned char **ImGetB(Image Im);

/* Copie d'une image


* Retourne NULL si probleme
*/
extern Image ImCopy(Image Im);

/* Lit une image dans un fichier de nom FileName.


* Si FileName="" (chaine vide) l'image est lue sur stdin.
* Retourne NULL si probleme
*/
extern Image ImRead(char FileName[]);
/* Ecrit une image dans un fichier au format binaire de nom FileName.
* Si FileName="" (chaine vide) l'image est erite sur stdout (attention :
* lors de l'ecriture sur stdout, problemes possibles sous DOS).
*/
extern void ImWrite(Image Im, char FileName[]);