#include <qgarlib/PgmFile.H>
Inheritance diagram for qgar::PgmFile:

Most of the code documented here is an adaptation of code from the PBM software package. Here is the copyright notice of this package:
+------------------------------------------------------------------------+ | Copyright (C) 1988 by Jef Poskanzer | | | | Permission to use, copy, modify, and distribute this software and its | | documentation for any purpose and without fee is hereby granted, | | provided that the above copyright notice appear in all copies and that | | both that copyright notice and this permission notice appear in | | supporting documentation. This software is provided "as is" without | | express or implied warranty. | +------------------------------------------------------------------------+
For more information about PBM, see the PBMPLUS home page.
Definition at line 83 of file PgmFile.H.
Public Member Functions | |
Constructors | |
| PgmFile (const char *aFileName, QGEpbmFormat aFormat=QGE_PBM_RAW) | |
| Initialize from file name and format. | |
| PgmFile (const char *aFileName, unsigned int aRowCnt, unsigned int aColCnt, unsigned int aMax=255, QGEpbmFormat aFormat=QGE_PBM_RAW) | |
| Initialize from full data. | |
Access | |
| int | maxPix () |
| Get maximum value of pixel. | |
Assignment | |
| void | setMaxPix (int aMax) |
| Set maximum value of pixel. | |
Input | |
| void | readRow () |
| Read a row from the file. | |
Output | |
| void | writeRow () |
| Write a row into the file. | |
Access | |
| int | colCnt () const |
| Get number of columns. | |
| int | rowCnt () const |
| Get number of rows. | |
| unsigned char * | pRow () |
| Get current row. | |
Assignment | |
| void | setColCnt (int aCnt) |
| Set number of columns. | |
| void | setRowCnt (int aCnt) |
| Set number of rows. | |
Access to file characteristics | |
| std::fstream & | fileStream () |
| Get file stream. | |
| const char *const | fileName () const |
| Get file name. | |
| QGEfileStatus | fileStatus () const |
| Get current file status. | |
Opening | |
| virtual void | openRONLY () throw (QgarErrorIO) |
| Open in read-only mode. | |
| virtual void | openWONLY () throw (QgarErrorIO) |
| Open in write-only mode. | |
| virtual void | openAPPEND () throw (QgarErrorIO) |
| Open in append mode. | |
| virtual void | openRW () throw (QgarErrorIO) |
| Open in read-write mode. | |
| virtual void | openRA () throw (QgarErrorIO) |
| Open in read-append mode. | |
Closing | |
| virtual void | close () |
| Close the file. | |
Checking status | |
| virtual void | isOpenR () throw (QgarErrorUser) |
| Abort if the file is not open in a mode allowing reading. | |
| virtual void | isOpenW () throw (QgarErrorUser) |
| Abort if the file is not open in a mode allowing writing. | |
| virtual void | isOpenA () throw (QgarErrorUser) |
| Abort if the file is not open in a mode allowing appending. | |
| virtual void | isOpenRW () throw (QgarErrorUser) |
| Abort if the file is not open in read-write mode. | |
| virtual void | isOpenRA () throw (QgarErrorUser) |
| Abort if the file is not open in readi-append mode. | |
Protected Member Functions | |
Input | |
| virtual void | readHeader () throw (QgarErrorIO) |
| Read file header. | |
Output | |
| virtual void | writeHeader () |
| Write file header. | |
| virtual void | writeFooter () |
| Write file footer. | |
| void | putUchar (unsigned char) |
| Put an unsigned char into the file. | |
Input auxiliaries | |
| virtual char | getChar () throw (QgarErrorIO) |
| Read a character from the file. | |
| virtual int | getInt () throw (QgarErrorIO) |
| Read an integer from the file. | |
| virtual unsigned char | getRawByte () throw (QgarErrorIO) |
| Read a raw byte from the file. | |
Memory space allocation | |
| void | newRow () |
| Allocate a new row. | |
Protected Attributes | |
Image features | |
| int | _maxPix |
| Maximum value of a pixel. | |
Representation of a file | |
| QGEpbmFormat | _format |
| Format of the file. | |
| int | _rowCnt |
| Number of rows of the image. | |
| int | _colCnt |
| Number of columns of the image. | |
| unsigned char * | _pRow |
| Pointer to current image row. | |
Representation of a file | |
| char * | _fileName |
| File name. | |
| QGEfileStatus | _fileStatus |
| File status. | |
| std::fstream | _fileStream |
| Associated file stream. | |
Static Protected Attributes | |
Magic numbers | |
| static const unsigned short | _s_pgm_format |
| PLAIN format. | |
| static const unsigned char | _s_pgm_magic1 = 'P' |
| PLAIN format: Magic-1. | |
| static const unsigned char | _s_pgm_magic2 = '2' |
| PLAIN format: Magic-2. | |
| static const unsigned short | _s_rpgm_format |
| RAW format. | |
| static const unsigned char | _s_rpgm_magic2 = '5' |
| RAW format: Magic-2. | |
|
||||||||||||
|
Initialize from file name and format.
|
|
||||||||||||||||||||||||
|
Initialize from full data.
|
|
|
Close the file. No effect is the file is already closed.
Definition at line 251 of file AbstractFile.C. References qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::QGE_FILE_STATUS_CLOSED, qgar::QGE_FILE_STATUS_READ_WRITE, qgar::QGE_FILE_STATUS_WRITE_ONLY, and qgar::AbstractFile::writeFooter(). Referenced by qgar::GenImage< T, CheckPolicy >::GenImage(), qgar::MapleFile::MapleFile(), qgar::AbstractFile::openAPPEND(), qgar::AbstractFile::openRA(), qgar::AbstractFile::openRONLY(), qgar::AbstractFile::openRW(), qgar::AbstractFile::openWONLY(), and qgar::GenImage< T, CheckPolicy >::save(). |
|
|
Get number of columns.
Definition at line 328 of file AbstractPbmPlusFile.H. References qgar::AbstractPbmPlusFile::_colCnt. Referenced by qgar::GenImage< T, CheckPolicy >::GenImage(). |
|
|
Get file name.
Definition at line 395 of file AbstractFile.H. References qgar::AbstractFile::_fileName. |
|
|
Get current file status.
Definition at line 404 of file AbstractFile.H. References qgar::AbstractFile::_fileStatus. |
|
|
Get file stream. When saving the stream, usual I/O operations apply to the associated file, depending on the opening mode. Definition at line 386 of file AbstractFile.H. References qgar::AbstractFile::_fileStream. |
|
|
Read a character from the file.
Definition at line 125 of file AbstractPbmPlusFile.C. References qgar::AbstractFile::_fileName, and qgar::AbstractFile::_fileStream. Referenced by qgar::PbmFile::getBit(), and qgar::AbstractPbmPlusFile::getInt(). |
|
|
Read an integer from the file.
Definition at line 169 of file AbstractPbmPlusFile.C. References qgar::AbstractFile::_fileName, and qgar::AbstractPbmPlusFile::getChar(). Referenced by readHeader(), qgar::PbmFile::readHeader(), and readRow(). |
|
|
Read a raw byte from the file.
Definition at line 207 of file AbstractPbmPlusFile.C. References qgar::AbstractFile::_fileName, and qgar::AbstractFile::_fileStream. Referenced by readRow(), and qgar::PbmFile::readRow(). |
|
|
Abort if the file is not open in a mode allowing appending.
Definition at line 310 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::QGE_FILE_STATUS_APPEND, and qgar::QGE_FILE_STATUS_READ_APPEND. |
|
|
Abort if the file is not open in a mode allowing reading.
Definition at line 273 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::QGE_FILE_STATUS_APPEND, and qgar::QGE_FILE_STATUS_WRITE_ONLY. Referenced by readRow(), and qgar::PbmFile::readRow(). |
|
|
Abort if the file is not open in readi-append mode.
Definition at line 347 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, and qgar::QGE_FILE_STATUS_READ_APPEND. |
|
|
Abort if the file is not open in read-write mode.
Definition at line 329 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, and qgar::QGE_FILE_STATUS_READ_WRITE. |
|
|
Abort if the file is not open in a mode allowing writing.
Definition at line 292 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, and qgar::QGE_FILE_STATUS_READ_ONLY. Referenced by qgar::TgifFile::write(), qgar::DxfFile::write(), writeRow(), and qgar::PbmFile::writeRow(). |
|
|
Get maximum value of pixel.
Definition at line 290 of file PgmFile.H. References _maxPix. |
|
|
Allocate a new row.
Definition at line 234 of file AbstractPbmPlusFile.C. References qgar::AbstractPbmPlusFile::_colCnt, and qgar::AbstractPbmPlusFile::_pRow. Referenced by readHeader(), qgar::PbmFile::readHeader(), writeHeader(), and qgar::PbmFile::writeHeader(). |
|
|
Open in append mode. The eventual content of the file is preserved and the file pointer is set to the end of the file.
Definition at line 166 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_APPEND, and qgar::AbstractFile::readHeader(). |
|
|
Open in read-append mode. The file pointer is set to the end of the file.
Definition at line 223 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_READ_APPEND, and qgar::AbstractFile::readHeader(). |
|
|
Open in read-only mode. The file pointer is set to the first character after the header.
Definition at line 107 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_READ_ONLY, and qgar::AbstractFile::readHeader(). Referenced by qgar::GenImage< T, CheckPolicy >::GenImage(). |
|
|
Open in read-write mode.
Definition at line 197 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_READ_WRITE, and qgar::AbstractFile::writeHeader(). |
|
|
Open in write-only mode.
Definition at line 136 of file AbstractFile.C. References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_WRITE_ONLY, and qgar::AbstractFile::writeHeader(). Referenced by qgar::MapleFile::MapleFile(), and qgar::GenImage< T, CheckPolicy >::save(). |
|
|
Get current row.
Definition at line 346 of file AbstractPbmPlusFile.H. References qgar::AbstractPbmPlusFile::_pRow. Referenced by qgar::GenImage< T, CheckPolicy >::GenImage(), readRow(), qgar::PbmFile::readRow(), qgar::GenImage< T, CheckPolicy >::save(), writeRow(), and qgar::PbmFile::writeRow(). |
|
|
Put an unsigned char into the file.
Referenced by writeRow(). |
|
|
Read file header.
Implements qgar::AbstractFile. Definition at line 129 of file PgmFile.C. References qgar::AbstractPbmPlusFile::_colCnt, qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStream, qgar::AbstractPbmPlusFile::_format, _maxPix, qgar::AbstractPbmPlusFile::_rowCnt, _s_pgm_format, _s_rpgm_format, qgar::AbstractPbmPlusFile::getInt(), qgar::AbstractPbmPlusFile::newRow(), qgar::QGE_PBM_PLAIN, and qgar::QGE_PBM_RAW. |
|
|
Read a row from the file.
Implements qgar::AbstractPbmPlusFile. Definition at line 195 of file PgmFile.C. References qgar::AbstractPbmPlusFile::_colCnt, qgar::AbstractPbmPlusFile::_format, qgar::AbstractPbmPlusFile::_pRow, qgar::AbstractPbmPlusFile::getInt(), qgar::AbstractPbmPlusFile::getRawByte(), qgar::AbstractFile::isOpenR(), qgar::AbstractPbmPlusFile::pRow(), qgar::QGE_PBM_PLAIN, and qgar::QGE_PBM_RAW. |
|
|
Get number of rows.
Definition at line 337 of file AbstractPbmPlusFile.H. References qgar::AbstractPbmPlusFile::_rowCnt. Referenced by qgar::GenImage< T, CheckPolicy >::GenImage(). |
|
|
Set number of columns.
Definition at line 360 of file AbstractPbmPlusFile.H. References qgar::AbstractPbmPlusFile::_colCnt. Referenced by qgar::GenImage< T, CheckPolicy >::save(). |
|
|
Set maximum value of pixel.
Definition at line 304 of file PgmFile.H. References _maxPix. |
|
|
Set number of rows.
Definition at line 369 of file AbstractPbmPlusFile.H. References qgar::AbstractPbmPlusFile::_rowCnt. Referenced by qgar::GenImage< T, CheckPolicy >::save(). |
|
|
Write file footer.
Implements qgar::AbstractFile. |
|
|
Write file header.
Implements qgar::AbstractFile. Definition at line 228 of file PgmFile.C. References qgar::AbstractPbmPlusFile::_colCnt, qgar::AbstractFile::_fileStream, qgar::AbstractPbmPlusFile::_format, _maxPix, qgar::AbstractPbmPlusFile::_rowCnt, _s_pgm_magic1, _s_pgm_magic2, _s_rpgm_magic2, qgar::AbstractPbmPlusFile::newRow(), and qgar::QGE_PBM_RAW. |
|
|
Write a row into the file.
Implements qgar::AbstractPbmPlusFile. Definition at line 257 of file PgmFile.C. References qgar::AbstractPbmPlusFile::_colCnt, qgar::AbstractFile::_fileStream, qgar::AbstractPbmPlusFile::_format, qgar::AbstractPbmPlusFile::_pRow, qgar::AbstractFile::isOpenW(), qgar::AbstractPbmPlusFile::pRow(), putUchar(), and qgar::QGE_PBM_RAW. |
|
|
Number of columns of the image.
Definition at line 258 of file AbstractPbmPlusFile.H. Referenced by qgar::AbstractPbmPlusFile::colCnt(), qgar::AbstractPbmPlusFile::newRow(), readHeader(), qgar::PbmFile::readHeader(), readRow(), qgar::PbmFile::readRow(), qgar::AbstractPbmPlusFile::setColCnt(), writeHeader(), qgar::PbmFile::writeHeader(), writeRow(), and qgar::PbmFile::writeRow(). |
|
|
|
|
|
Format of the file.
Definition at line 248 of file AbstractPbmPlusFile.H. Referenced by readHeader(), qgar::PbmFile::readHeader(), readRow(), qgar::PbmFile::readRow(), writeHeader(), qgar::PbmFile::writeHeader(), writeRow(), and qgar::PbmFile::writeRow(). |
|
|
Maximum value of a pixel.
Definition at line 226 of file PgmFile.H. Referenced by maxPix(), readHeader(), setMaxPix(), and writeHeader(). |
|
|
Pointer to current image row.
Definition at line 263 of file AbstractPbmPlusFile.H. Referenced by qgar::AbstractPbmPlusFile::newRow(), qgar::AbstractPbmPlusFile::pRow(), readRow(), qgar::PbmFile::readRow(), writeRow(), qgar::PbmFile::writeRow(), and qgar::AbstractPbmPlusFile::~AbstractPbmPlusFile(). |
|
|
Number of rows of the image.
Definition at line 253 of file AbstractPbmPlusFile.H. Referenced by readHeader(), qgar::PbmFile::readHeader(), qgar::AbstractPbmPlusFile::rowCnt(), qgar::AbstractPbmPlusFile::setRowCnt(), writeHeader(), and qgar::PbmFile::writeHeader(). |
|
|
Initial value: (((unsigned short) PgmFile::_s_pgm_magic1) * 256) + (unsigned short) PgmFile::_s_pgm_magic2
Definition at line 77 of file PgmFile.C. Referenced by readHeader(). |
|
|
PLAIN format: Magic-1.
Definition at line 73 of file PgmFile.C. Referenced by writeHeader(). |
|
|
PLAIN format: Magic-2.
Definition at line 75 of file PgmFile.C. Referenced by writeHeader(). |
|
|
Initial value: (((unsigned short) PgmFile::_s_pgm_magic1) * 256) + (unsigned short) PgmFile::_s_rpgm_magic2
Definition at line 83 of file PgmFile.C. Referenced by readHeader(). |
|
|
RAW format: Magic-2.
Definition at line 81 of file PgmFile.C. Referenced by writeHeader(). |