Panda3D
Loading...
Searching...
No Matches
Public Member Functions | List of all members
PNMFileTypePfm::Reader Class Reference
Inheritance diagram for PNMFileTypePfm::Reader:
PNMReader PNMImageHeader

Public Member Functions

 Reader (PNMFileType *type, std::istream *file, bool owns_file, std::string magic_number)
 
virtual bool is_floating_point ()
 Returns true if this PNMFileType represents a floating-point image type, false if it is a normal, integer type.
 
virtual bool read_pfm (PfmFile &pfm)
 Reads floating-point data directly into the indicated PfmFile.
 
- Public Member Functions inherited from PNMReader
PNMFileTypeget_type () const
 Returns a pointer to the PNMFileType object that created this PNMReader.
 
bool is_valid () const
 Returns true if the PNMReader can be used to read data, false if something is wrong.
 
virtual void prepare_read ()
 This method will be called before read_data() or read_row() is called.
 
virtual int read_data (xel *array, xelval *alpha)
 Reads in an entire image all at once, storing it in the pre-allocated _x_size * _y_size array and alpha pointers.
 
virtual bool read_row (xel *array, xelval *alpha, int x_size, int y_size)
 If supports_read_row(), above, returns true, this function may be called repeatedly to read the image, one horizontal row at a time, beginning from the top.
 
void set_read_size (int x_size, int y_size)
 Instructs the reader to attempt to scale the image to the indicated size while reading it.
 
virtual bool supports_read_row () const
 Returns true if this particular PNMReader is capable of returning the data one row at a time, via repeated calls to read_row().
 
virtual bool supports_stream_read () const
 Returns true if this particular PNMReader can read from a general stream (including pipes, etc.), or false if the reader must occasionally fseek() on its input stream, and thus only disk streams are supported.
 
- Public Member Functions inherited from PNMImageHeader
 PNMImageHeader (const PNMImageHeader &copy)
 
ColorSpace get_color_space () const
 
ColorType get_color_type () const
 Returns the image type of the image, as an enumerated value.
 
std::string get_comment () const
 
xelval get_maxval () const
 
int get_num_channels () const
 
LVecBase2i get_size () const
 
PNMFileTypeget_type () const
 
int get_x_size () const
 Returns the number of pixels in the X direction.
 
int get_y_size () const
 Returns the number of pixels in the Y direction.
 
bool has_alpha () const
 Returns true if the image includes an alpha channel, false otherwise.
 
bool has_type () const
 
bool is_grayscale () const
 Returns false if the image is a full-color image, and has red, green, and blue components; true if it is a grayscale image and has only a gray component.
 
PNMReadermake_reader (const Filename &filename, PNMFileType *type=nullptr, bool report_unknown_type=true) const
 Returns a newly-allocated PNMReader of the suitable type for reading from the indicated image filename, or NULL if the filename cannot be read for some reason.
 
PNMReadermake_reader (std::istream *file, bool owns_file=true, const Filename &filename=Filename(), std::string magic_number=std::string(), PNMFileType *type=nullptr, bool report_unknown_type=true) const
 Returns a newly-allocated PNMReader of the suitable type for reading from the already-opened image file, or NULL if the file cannot be read for some reason.
 
PNMWritermake_writer (const Filename &filename, PNMFileType *type=nullptr) const
 Returns a newly-allocated PNMWriter of the suitable type for writing an image to the indicated filename, or NULL if the filename cannot be written for some reason.
 
PNMWritermake_writer (std::ostream *file, bool owns_file=true, const Filename &filename=Filename(), PNMFileType *type=nullptr) const
 Returns a newly-allocated PNMWriter of the suitable type for writing to the already-opened image file, or NULL if the file cannot be written for some reason.
 
void operator= (const PNMImageHeader &copy)
 
void output (std::ostream &out) const
 
bool read_header (const Filename &filename, PNMFileType *type=nullptr, bool report_unknown_type=true)
 Opens up the image file and tries to read its header information to determine its size, number of channels, etc.
 
bool read_header (std::istream &data, const std::string &filename=std::string(), PNMFileType *type=nullptr, bool report_unknown_type=true)
 Reads the image header information only from the indicated stream.
 
void set_comment (const std::string &comment)
 
void set_type (PNMFileType *type)
 Sets the file type of this PNMImage.
 

Additional Inherited Members

- Public Types inherited from PNMImageHeader
enum  ColorType {
  CT_invalid = 0 , CT_grayscale = 1 , CT_two_channel = 2 , CT_color = 3 ,
  CT_four_channel = 4
}
 
typedef pmap< PixelSpec, int > HistMap
 
typedef pvector< PixelSpecPalette
 
typedef pvector< PixelSpecCountPixelCount
 
- Static Public Member Functions inherited from PNMImageHeader
static bool has_alpha (ColorType color_type)
 This static variant of has_alpha() returns true if the indicated image type includes an alpha channel, false otherwise.
 
static bool is_grayscale (ColorType color_type)
 This static variant of is_grayscale() returns true if the indicated image type represents a grayscale image, false otherwise.
 
static bool read_magic_number (std::istream *file, std::string &magic_number, int num_bytes)
 Ensures that the first n bytes of the file are read into magic_number.
 
- Public Attributes inherited from PNMImageHeader
 get_color_space
 Returns the color space that the image is encoded in, or CS_unspecified if unknown.
 
 get_comment
 Gets the user comment from the file.
 
 get_maxval
 Returns the maximum channel value allowable for any pixel in this image; for instance, 255 for a typical 8-bit-per-channel image.
 
 get_num_channels
 Returns the number of channels in the image.
 
 get_size
 Returns the number of pixels in each direction.
 
 get_type
 If the file type is known (e.g.
 
 has_type
 Returns true if the PNMImageHeader knows what type it is, false otherwise.
 
 set_comment
 Writes a user comment string to the image (header).
 

Detailed Description

Definition at line 46 of file pnmFileTypePfm.h.

Constructor & Destructor Documentation

◆ Reader()

PNMFileTypePfm::Reader::Reader ( PNMFileType * type,
std::istream * file,
bool owns_file,
std::string magic_number )

Definition at line 115 of file pnmFileTypePfm.cxx.

Member Function Documentation

◆ is_floating_point()

bool PNMFileTypePfm::Reader::is_floating_point ( )
virtual

Returns true if this PNMFileType represents a floating-point image type, false if it is a normal, integer type.

If this returns true, read_pfm() is implemented instead of read_data().

Reimplemented from PNMReader.

Definition at line 168 of file pnmFileTypePfm.cxx.

◆ read_pfm()

bool PNMFileTypePfm::Reader::read_pfm ( PfmFile & pfm)
virtual

Reads floating-point data directly into the indicated PfmFile.

Returns true on success, false on failure.

Reimplemented from PNMReader.

Definition at line 177 of file pnmFileTypePfm.cxx.

References PfmFile::clear(), PfmFile::set_scale, ReversedNumericData::store_value(), and PfmFile::swap_table().


The documentation for this class was generated from the following files: