#ifndef __INCLUDE_PNM_READ_H__
#define __INCLUDE_PNM_READ_H__
#ifndef TRUE
#define TRUE
#endif
#ifndef FALSE
#define FALSE
#endif
#define MAX_PATH 256
typedef unsigned char PIXEL;
typedef struct RGB_PACKED_PIXEL {
PIXEL r;
PIXEL g;
PIXEL b;
} CPIXEL;
enum PNM_TYPE {
PNM_P1 = 1,
PNM_P2 = 2,
PNM_P3 = 3,
PNM_P4 = 4,
PNM_P5 = 5,
PNM_P6 = 6,
};
typedef struct PNM_IMAGE_INFO{
int itype;
int iw,ih;
int imax;
} PNMInfo;
PIXEL* read_pnm(char* ifile,PNMInfo* pi);
PIXEL* ppm2bmp(PNMInfo pi,PIXEL* pdata);
PIXEL* pgm2bmp(PNMInfo pi,PIXEL* pdata);
void disp_header(PNMInfo pi);
void PNM_Gimgread(FILE** fp,PNMInfo pi,PIXEL* pdata);
void PNM_Cimgread(FILE** fp,PNMInfo pi,PIXEL* pdata);
void write_pnm(char* ofile,PNMInfo pi,PIXEL* pdata);
void PNM_Headout(FILE** fp,PNMInfo pi);
void PNM_Gimgout(FILE** fp,PNMInfo pi,PIXEL* pdata);
void PNM_Cimgout(FILE** fp,PNMInfo pi,PIXEL* pdata);
void pnmSetPixel(PNMInfo pi,PIXEL* pdata,int x,int y,PIXEL p);
void pnmGetPixel(PNMInfo pi,PIXEL* pdata,int x,int y,PIXEL* p);
void pnmSetRGB(PNMInfo pi,PIXEL* pdata,int x,int y,CPIXEL p);
void pnmGetRGB(PNMInfo pi,PIXEL* pdata,int x,int y,CPIXEL* p);
#endif