home *** CD-ROM | disk | FTP | other *** search
- /* pgm.h - header file for libpgm portable graymap library
- */
-
- #ifndef _PGM_H_
- #define _PGM_H_
-
- #include "pbm.h"
-
- #ifdef PGM_BIGGRAYS
- typedef unsigned short gray;
- #define PGM_MAXMAXVAL 65535
- #else /*PGM_BIGGRAYS*/
- typedef unsigned char gray;
- #define PGM_MAXMAXVAL 255
- #endif /*PGM_BIGGRAYS*/
-
-
- /* Magic constants. */
-
- #define PGM_MAGIC1 'P'
- #define PGM_MAGIC2 '2'
- #define RPGM_MAGIC2 '5'
- #define PGM_FORMAT (PGM_MAGIC1 * 256 + PGM_MAGIC2)
- #define RPGM_FORMAT (PGM_MAGIC1 * 256 + RPGM_MAGIC2)
- #define PGM_TYPE PGM_FORMAT
-
-
- /* Macro for turning a format number into a type number. */
-
- #define PGM_FORMAT_TYPE(f) ((f) == PGM_FORMAT || (f) == RPGM_FORMAT ? PGM_TYPE : PBM_FORMAT_TYPE(f))
-
-
- /* Declarations of routines. */
-
- void pgm_init( int* argcP, char* argv[] );
-
- #define pgm_allocarray( cols, rows ) ((gray**) pm_allocarray( cols, rows, sizeof(gray) ))
- #define pgm_allocrow( cols ) ((gray*) pm_allocrow( cols, sizeof(gray) ))
- #define pgm_freearray( grays, rows ) pm_freearray( (char**) grays, rows )
- #define pgm_freerow( grayrow ) pm_freerow( (char*) grayrow )
-
- gray** pgm_readpgm( FILE* file, int* colsP, int* rowsP, gray* maxvalP );
- void pgm_readpgminit( FILE* file, int* colsP, int* rowsP, gray* maxvalP, int* formatP );
- void pgm_readpgmrow( FILE* file, gray* grayrow, int cols, gray maxval, int format );
-
- void pgm_writepgm( FILE* file, gray** grays, int cols, int rows, gray maxval, int forceplain );
- void pgm_writepgminit( FILE* file, int cols, int rows, gray maxval, int forceplain );
- void pgm_writepgmrow( FILE* file, gray* grayrow, int cols, gray maxval, int forceplain );
-
- extern gray pgm_pbmmaxval;
- /* This is the maxval used when a PGM program reads a PBM file. Normally
- ** it is 1; however, for some programs, a larger value gives better results
- */
-
- #endif /*_PGM_H_*/
-