/* * The Npic library * * Copyright (C) 2003 Edouard Thiel * * This library is free software under the terms of the * GNU Lesser General Public License (LGPL) version 2.1. */ /* * files_pnm.h - 22/11/2010 * * PNM - Portable aNyMap file format (PNM or PBM/PGM/PPM extensions) */ #ifndef NPIC__FILES_PNM_H #define NPIC__FILES_PNM_H /* PUBLIC */ typedef enum { NPIC_PNM_FORMAT_UNKNOWN, NPIC_PNM_BITMAP_ASCII, /* P1 */ NPIC_PNM_GREYMAP_ASCII, /* P2 */ NPIC_PNM_PIXMAP_ASCII, /* P3 */ NPIC_PNM_BITMAP_BINARY, /* P4 */ NPIC_PNM_GREYMAP_BINARY, /* P5 */ NPIC_PNM_PIXMAP_BINARY, /* P6 */ NPIC_PNM_AUTO_DETECT, } Npic_pnm_format; typedef enum { NPIC_PNM_OPTION_NONE = 0, NPIC_PNM_BITMAP = 1L << 1, /* default is greymap */ NPIC_PNM_ASCII = 1L << 2, /* default is binary */ NPIC_PNM_ALLOW_16_BIT = 1L << 3, /* default is 8 bit */ NPIC_PNM_LITTLE_ENDIAN = 1L << 4, /* default is big endian */ } Npic_pnm_option; int NpicWritePNM (Npic_image *np, const char *filename, Npic_file_compress comp, Npic_pnm_format format, Npic_pnm_option option); Npic_image *NpicReadPNM (const char *filename, Npic_file_compress comp, Npic_pnm_option option); int NpicInfoPNM (const char *filename, Npic_file_compress comp); /* PRIVATE */ typedef struct { char magic[16]; /* The magic number. */ Npic_pnm_format format; /* The corresponding file format */ int xmax, ymax; /* Image size */ int maxgrey; /* Max possible pixel value */ int npic_type; /* The equivalent NPIC type */ int npic_dim; /* The NPIC dimension */ } Npic_pnm_info; int NpicWritePNMwithHints (Npic_image *np, Npic_file_hints *h); Npic_image *NpicReadPNMwithHints (Npic_file_hints *h); int NpicPNMWriteFile (Npic_image *np, FILE *f1, const char *filename, const char *funcname, Npic_pnm_format format, Npic_pnm_option option); void NpicPNMWriteHeader (Npic_image *np, FILE *f1, const char *filename, const char *funcname, Npic_pnm_format format, Npic_pnm_option option); int NpicPNMWriteBitmapAscii (Npic_image *np, FILE *f); int NpicPNMWriteGreymapAscii (Npic_image *np, FILE *f, int bit16); int NpicPNMWritePixmapAscii (Npic_image *np, FILE *f, int bit16); int NpicPNMWriteBitmapBin (Npic_image *np, FILE *f); int NpicPNMWriteGreymapBin (Npic_image *np, FILE *f, int bit16, int bswap); int NpicPNMWritePixmapBin (Npic_image *np, FILE *f, int bit16, int bswap); Npic_image *NpicPNMReadFile (FILE *f1, const char *filename, const char *funcname, Npic_pnm_option option); int NPicPNMReadInfo (FILE *f1, Npic_pnm_info *info); int NpicPNMPrintInfo (const char *filename, Npic_pnm_info *info); int NpicPNMReadInt (FILE *f, int *val); int NpicPNMReadBitmapAscii (Npic_image *np, FILE *f); int NpicPNMReadGreymapAscii (Npic_image *np, FILE *f, int maxgrey); int NpicPNMReadPixmapAscii (Npic_image *np, FILE *f, int maxgrey); int NpicPNMReadBitmapBin (Npic_image *np, FILE *f); int NpicPNMReadGreymapBin (Npic_image *np, FILE *f, int bit16, int bswap); int NpicPNMReadPixmapBin (Npic_image *np, FILE *f, int bit16, int bswap); #endif /* NPIC__FILES_PNM_H */