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

Public Member Functions

 Writer (PNMFileType *type, std::ostream *file, bool owns_file)
 
virtual bool supports_floating_point ()
 Returns true if this PNMFileType can accept a floating-point image type, false if it can only accept a normal, integer type.
 
virtual bool supports_integer ()
 Returns true if this PNMFileType can accept an integer image type, false if it can only accept a floating-point type.
 
virtual bool write_pfm (const PfmFile &pfm)
 Writes floating-point data from the indicated PfmFile.
 
- Public Member Functions inherited from PNMWriter
void copy_header_from (const PNMImageHeader &header)
 Initializes all the data in the header (x_size, y_size, num_channels, etc.) to the same values indicated in the given header.
 
PNMFileTypeget_type () const
 Returns a pointer to the PNMFileType object that created this PNMWriter.
 
bool is_valid () const
 Returns true if the PNMWriter can be used to write data, false if something is wrong.
 
void set_color_type (ColorType type)
 
void set_maxval (xelval maxval)
 
void set_num_channels (int num_channels)
 
void set_x_size (int x_size)
 
void set_y_size (int y_size)
 
virtual bool supports_grayscale () const
 Returns true if this particular PNMWriter understands grayscale images.
 
virtual bool supports_stream_write () const
 Returns true if this particular PNMWriter can write to a general stream (including pipes, etc.), or false if the writer must occasionally fseek() on its output stream, and thus only disk streams are supported.
 
virtual bool supports_write_row () const
 Returns true if this particular PNMWriter supports a streaming interface to writing the data: that is, it is capable of writing the image one row at a time, via repeated calls to write_row().
 
virtual int write_data (xel *array, xelval *alpha)
 Writes out an entire image all at once, including the header, based on the image data stored in the given _x_size * _y_size array and alpha pointers.
 
virtual bool write_header ()
 If supports_write_row(), above, returns true, this function may be called to write out the image header in preparation to writing out the image data one row at a time.
 
virtual bool write_row (xel *array, xelval *alpha)
 If supports_write_row(), above, returns true, this function may be called repeatedly to write the image, one horizontal row at a time, beginning from the top.
 
- 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 57 of file pnmFileTypePfm.h.

Constructor & Destructor Documentation

◆ Writer()

PNMFileTypePfm::Writer::Writer ( PNMFileType * type,
std::ostream * file,
bool owns_file )

Definition at line 234 of file pnmFileTypePfm.cxx.

Member Function Documentation

◆ supports_floating_point()

bool PNMFileTypePfm::Writer::supports_floating_point ( )
virtual

Returns true if this PNMFileType can accept a floating-point image type, false if it can only accept a normal, integer type.

If this returns true, write_pfm() is implemented.

Reimplemented from PNMWriter.

Definition at line 245 of file pnmFileTypePfm.cxx.

◆ supports_integer()

bool PNMFileTypePfm::Writer::supports_integer ( )
virtual

Returns true if this PNMFileType can accept an integer image type, false if it can only accept a floating-point type.

If this returns true, write_data() or write_row() is implemented.

Reimplemented from PNMWriter.

Definition at line 255 of file pnmFileTypePfm.cxx.

◆ write_pfm()

bool PNMFileTypePfm::Writer::write_pfm ( const PfmFile & pfm)
virtual

Writes floating-point data from the indicated PfmFile.

Returns true on success, false on failure.

Reimplemented from PNMWriter.

Definition at line 264 of file pnmFileTypePfm.cxx.

References PNMImageHeader::get_num_channels, PfmFile::get_scale, PfmFile::get_table(), PNMImageHeader::get_x_size(), and PNMImageHeader::get_y_size().


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