// pgmfile.h: interface for the Cpgmfile class.
//
//////////////////////////////////////////////////////////////////////

#define PGM_MAGIC_ID_ASCII		"P2"
#define PGM_MAGIC_ID_BIN		"P5"

class Cpgmfile  
{
public:
	void unloadFile();
	int readFile(char *pFilename);
	int writeFile(char *pFilename, bool bASCII = false);
	bool getData(unsigned char *pData, int iLen);
	bool getData(unsigned char **pData, int iWidth, int iHeight);
	void setData(unsigned char *pData, int iWidth, int iHeight);
	int getDataSize();
	int getHeight();
	int getWidth();
	unsigned char getMaxGrayVal();
	Cpgmfile();
	virtual ~Cpgmfile();

private:
	int readASCIIFile(char *pFilename);
	int readBinaryFile(char *pFilename);
	void removeComments(char *pBuff);
	int m_iHeight;
	int m_iWidth;
	unsigned char m_chMaxGrayVal;
	unsigned char *m_pData;

};
