home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 309.lha / PBM_PLUS / pnm / pnm.h < prev    next >
C/C++ Source or Header  |  1980-12-04  |  2KB  |  63 lines

  1. /* pnm.h - header file for libpnm portable anymap library
  2. */
  3.  
  4. #ifndef _PNM_H_
  5. #define _PNM_H_
  6.  
  7. #ifdef PPM
  8.  
  9. #include "ppm.h"
  10. typedef pixel xel;
  11. typedef pixval xelval;
  12.  
  13. #define PNM_GET1(p) PPM_GETB(p)
  14. #define PNM_ASSIGN1(p,v) PPM_ASSIGN(p,0,0,v)
  15. #define PNM_EQUAL(p,q) PPM_EQUAL(p,q)
  16.  
  17. #else PPM
  18. # ifdef PGM
  19.  
  20. #include "pgm.h"
  21. typedef gray xel;
  22. typedef gray xelval;
  23. #define PNM_GET1(p) (p)
  24. #define PNM_ASSIGN1(p,v) (p) = (v)
  25. #define PNM_EQUAL(p,q) ( (p) == (q) )
  26.  
  27. # else PGM
  28. #  ifdef PBM
  29.  
  30. #include "pbm.h"
  31. typedef bit xel;
  32. typedef bit xelval;
  33. #define PNM_GET1(p) (p)
  34. #define PNM_ASSIGN1(p,v) (p) = (v)
  35. #define PNM_EQUAL(p,q) ( (p) == (q) )
  36.  
  37. #  endif PBM
  38. # endif PGM
  39. #endif PPM
  40.  
  41. /* Declarations of routines. */
  42.  
  43. #define pnm_allocarray( cols, rows ) ((xel **) pm_allocarray( cols, rows, sizeof(xel) ))
  44. #define pnm_allocrow( cols ) ((xel *) pm_allocrow( cols, sizeof(xel) ))
  45. #define pnm_freearray( xelrow, rows ) pm_freearray( xelrow, rows )
  46. #define pnm_freerow( xelrow ) pm_freerow( xelrow )
  47.  
  48. xel **pnm_readpnm( /* FILE *file, int *colsP, int *rowsP, xelval *maxvalP, int *formatP */ );
  49. void pnm_readpnminit( /* FILE *file, int *colsP, int *rowsP, xelval *maxvalP, int *formatP */ );
  50. void pnm_readpnmrow( /* FILE *file, xel *xelrow, int cols, xelval maxval, int format */ );
  51.  
  52. void pnm_writepnm( /* FILE *file, xel **xels, int cols, int rows, xelval maxval, int format */ );
  53. void pnm_writepnminit( /* FILE *file, int cols, int rows, xelval maxval, int format */ );
  54. void pnm_writepnmrow( /* FILE *file, xel *xelrow, int cols, xelval maxval, int format */ );
  55.  
  56. xel pnm_backgroundxel( /* xel **xels, int cols, int rows, xelval maxval, int format */ );
  57. xel pnm_whitexel( /* xelval maxval, int format */ );
  58. xel pnm_blackxel( /* xelval maxval, int format */ );
  59. xel pnm_invertxel( /* xel x, xelval maxval, int format */ );
  60. void pnm_promoteformat( /* xel **xels, int cols, int rows, xelval maxval, int format, xelval newmaxval, int newformat */ );
  61.  
  62. #endif _PNM_H_
  63.