Isis Developer Reference
|
Exports cubes into a standard format in incremental pieces. More...
#include <StreamExporter.h>
Public Member Functions | |
StreamExporter () | |
Construct the stream exporter. | |
virtual | ~StreamExporter () |
Destruct the exporter. | |
virtual void | setGrayscale (ExportDescription &desc) |
Generic initialization with the export description. | |
virtual void | setRgb (ExportDescription &desc) |
Generic initialization with the export description. | |
virtual void | setRgba (ExportDescription &desc) |
Generic initialization with the export description. | |
void | operator() (vector< Buffer * > &in) const |
The method for writing a line of input image data (with potentially several bands representing color channels) to the output image. | |
virtual void | write (FileName outputName, int quality=100, QString compression="none", UserInterface *ui=nullptr) |
Export the Isis cube channels to the given standard image. | |
int | samples () const |
Number of samples (columns) in the output image. | |
int | lines () const |
Number of lines (rows) in the output image. | |
int | bands () const |
Number of bands (channels) in the output image. | |
double | inputMinimum (int channel) const |
Returns the input minimum for the given channel. | |
double | inputMaximum (int channel) const |
Returns the input maximum for the given channel. | |
void | setOutputPixelRange (double outputPixelMinimum, double outputPixelMaximum) |
Set the DN floor and ceiling for the exported image. | |
Static Public Member Functions | |
static ImageExporter * | fromFormat (QString format) |
A static (factory) method for constructing an ImageExporter instance from an output format. | |
Protected Types | |
typedef void(ImageExporter::* | WriteChannels) (vector< Buffer * > &in) const |
Friendly alias for a method used to write a particular color channel. | |
Protected Member Functions | |
virtual void | initialize (ExportDescription &desc) |
Generic initialization with the export description. | |
virtual void | writeGrayscale (vector< Buffer * > &in) const |
Write a line of grayscale data to the output image. | |
virtual void | writeRgb (vector< Buffer * > &in) const |
Write a line of RGB data to the output image. | |
virtual void | writeRgba (vector< Buffer * > &in) const |
Write a line of RGBA data to the output image. | |
virtual void | createBuffer ()=0 |
Pure virtual method for creating the buffer to store a chunk of streamed line data with one or more bands. | |
virtual void | setBuffer (int s, int b, int dn) const =0 |
Pure virtual method for setting a particular index of the line buffer to the given DN. | |
virtual void | writeLine (int l) const =0 |
Pure virtual method for writing a line of buffered data to the output image on disk. | |
void | setExtension (QString extension) |
Sets the extension for the output image and generates the extension for the world file from it. | |
void | setExportDescription (ExportDescription &desc) |
Sets the description for the output image. | |
Cube * | initializeProcess () |
Sets up the export process with the parameters described within the given description. | |
QString | extension () const |
Gets the extension for the output image. | |
ExportDescription & | exportDescription () const |
Gets the description for the output image. | |
ProcessExport & | process () const |
Get a reference to the process object, useful for subclasses to access and manipulate the process. | |
PixelType | pixelType () const |
Returns the pixel type. | |
virtual int | outputPixelValue (double dn) const |
Return the output clamped integer pixel value from the input double-precision DN. | |
Exports cubes into a standard format in incremental pieces.
Abstract base class for a series of stream image exporters. Stream exporters are specialized in that they write out data as a stream of lines as opposed to keeping the export data all in memory. In this way, they can be run on arbitrarily large images.
|
protectedinherited |
Friendly alias for a method used to write a particular color channel.
Isis::StreamExporter::StreamExporter | ( | ) |
Construct the stream exporter.
|
virtual |
Destruct the exporter.
|
inherited |
Number of bands (channels) in the output image.
Referenced by Isis::QtExporter::checkDataSize(), Isis::JP2Exporter::createBuffer(), Isis::TiffExporter::createBuffer(), Isis::TiffExporter::setBuffer(), Isis::JP2Exporter::write(), and Isis::TiffExporter::write().
|
protectedpure virtual |
Pure virtual method for creating the buffer to store a chunk of streamed line data with one or more bands.
Implemented in Isis::JP2Exporter, and Isis::TiffExporter.
Referenced by initialize().
|
protectedinherited |
Gets the description for the output image.
Referenced by Isis::ImageExporter::initializeProcess().
|
protectedinherited |
Gets the extension for the output image.
Referenced by Isis::ImageExporter::setExtension(), Isis::JP2Exporter::write(), Isis::QtExporter::write(), and Isis::TiffExporter::write().
|
staticinherited |
A static (factory) method for constructing an ImageExporter instance from an output format.
The specific subclass of the returned instance is determined from the desired output image format provided. Each subclass has knowledge of whether or not it can write a particular format. Because the ability to export an image format is not mutually exclusive amongst exporters, the order of condieration here matters. For example, using a TIFF exporter takes precedence over a Qt exporter for TIFF images, because the former can process cubes greater than 2GB while the latter cannot. It is the caller's responsibility to delete the exporter instance when they are finished with it.
format | The format for the output image to be created |
References _FILEINFO_, Isis::JP2Exporter::canWriteFormat(), Isis::QtExporter::canWriteFormat(), Isis::TiffExporter::canWriteFormat(), and Isis::IException::Programmer.
|
protectedvirtual |
Generic initialization with the export description.
Set the input, set the pixel type, and create the buffer.
desc | Export description containing necessary channel information |
Implements Isis::ImageExporter.
References createBuffer(), and Isis::ImageExporter::initialize().
Referenced by setGrayscale(), setRgb(), and setRgba().
|
protectedinherited |
Sets up the export process with the parameters described within the given description.
This method determines determines whether to write the data as grayscale, RGB, or RGBA. It then opens a cube for retrieving the input data and establishing the dimensions of the output image. Next, the ProcessExport format is set to BIL and the ProcessExport output pixel type, output valid data range, and output null are set based on the given export description. Last, the absolute output pixel range is set based on the given description (this is the smallest and largest allowed pixel values in the output, including "special" pixel values).
References _FILEINFO_, Isis::ProcessExport::BIL, Isis::ExportDescription::channelCount(), Isis::ImageExporter::exportDescription(), Isis::Cube::lineCount(), Isis::ExportDescription::outputPixelAbsoluteMax(), Isis::ExportDescription::outputPixelAbsoluteMin(), Isis::ExportDescription::outputPixelNull(), Isis::ExportDescription::outputPixelValidMax(), Isis::ExportDescription::outputPixelValidMin(), Isis::ImageExporter::pixelType(), Isis::ImageExporter::process(), Isis::IException::Programmer, Isis::Cube::sampleCount(), Isis::Cube::setFormat(), Isis::ImageExporter::setOutputPixelRange(), Isis::ImageExporter::writeGrayscale(), Isis::ImageExporter::writeRgb(), and Isis::ImageExporter::writeRgba().
Referenced by Isis::ImageExporter::initialize().
|
inherited |
Returns the input maximum for the given channel.
Any value of max in the input cube will be mapped to the output max of the output channel.
channel | Index of the channel within the process |
References Isis::ProcessExport::GetInputMaximum().
|
inherited |
Returns the input minimum for the given channel.
Any value of min in the input cube will be mapped to the output min of the output channel.
channel | Index of the channel within the process |
References Isis::ProcessExport::GetInputMinimum().
|
inherited |
Number of lines (rows) in the output image.
Referenced by Isis::QtExporter::checkDataSize(), Isis::QtExporter::setGrayscale(), Isis::QtExporter::setRgb(), Isis::QtExporter::setRgba(), Isis::JP2Exporter::write(), and Isis::TiffExporter::write().
|
inherited |
The method for writing a line of input image data (with potentially several bands representing color channels) to the output image.
It is called for each line of data in the input images (provides a vector containing the same line from each single-band input image). Enables the exporter to be used as a functor in a custom ProcessExport routine, bypassing the black-box write() method entirely.
in | Vector containing a line of input data from each input channel |
|
protectedvirtualinherited |
Return the output clamped integer pixel value from the input double-precision DN.
dn | The input DN |
Referenced by Isis::QtExporter::writeGrayscale(), writeGrayscale(), Isis::QtExporter::writeRgb(), writeRgb(), Isis::QtExporter::writeRgba(), and writeRgba().
|
protectedinherited |
Returns the pixel type.
Defaults to None if not set by the user.
References Isis::None, and Isis::ExportDescription::pixelType().
Referenced by Isis::JP2Exporter::createBuffer(), Isis::TiffExporter::createBuffer(), Isis::ImageExporter::initializeProcess(), Isis::JP2Exporter::setBuffer(), Isis::TiffExporter::setBuffer(), Isis::JP2Exporter::write(), Isis::TiffExporter::write(), and Isis::JP2Exporter::writeLine().
|
protectedinherited |
Get a reference to the process object, useful for subclasses to access and manipulate the process.
Referenced by Isis::ImageExporter::initializeProcess(), and Isis::ImageExporter::write().
|
inherited |
Number of samples (columns) in the output image.
Referenced by Isis::QtExporter::checkDataSize(), Isis::JP2Exporter::createBuffer(), Isis::TiffExporter::createBuffer(), Isis::QtExporter::setGrayscale(), Isis::QtExporter::setRgb(), Isis::QtExporter::setRgba(), Isis::JP2Exporter::write(), and Isis::TiffExporter::write().
|
protectedpure virtual |
Pure virtual method for setting a particular index of the line buffer to the given DN.
s | The sample index into the buffer |
b | The band index into the buffer |
dn | The value to set at the given index |
Implemented in Isis::JP2Exporter, and Isis::TiffExporter.
Referenced by writeGrayscale(), writeRgb(), and writeRgba().
|
protectedinherited |
Sets the description for the output image.
desc | The export description |
Referenced by Isis::ImageExporter::initialize().
|
protectedinherited |
Sets the extension for the output image and generates the extension for the world file from it.
extension | The extension for the output image |
References Isis::ImageExporter::extension().
Referenced by Isis::JP2Exporter::JP2Exporter(), Isis::QtExporter::QtExporter(), and Isis::TiffExporter::TiffExporter().
|
virtual |
Generic initialization with the export description.
Stream exporters do not do anything special to export a grayscale image beyond setting up the appropriate number of color channels.
desc | Export description containing necessary channel information |
Implements Isis::ImageExporter.
References initialize().
|
inherited |
Set the DN floor and ceiling for the exported image.
All DNs less than the min will be set to the min in the exported image. Similarly, all DNs greater than the max will be set to the max in the exported image.
Note: These values may be "special". For example, if Null pixels are exported to 0.0 and the minimum valid pixels are exported to 2.0, then 0.0 should be passed in for the value of the min parameter.
min | The absolute minimum output DN value. |
max | The absolute maximum output DN value. |
Referenced by Isis::ImageExporter::initializeProcess().
|
virtual |
Generic initialization with the export description.
Stream exporters do not do anything special to export an RGB image beyond setting up the appropriate number of color channels.
desc | Export description containing necessary channel information |
Implements Isis::ImageExporter.
References initialize().
|
virtual |
Generic initialization with the export description.
Stream exporters do not do anything special to export an RGBA image beyond setting up the appropriate number of color channels.
desc | Export description containing necessary channel information |
Implements Isis::ImageExporter.
References initialize().
|
virtualinherited |
Export the Isis cube channels to the given standard image.
If supported by the specific exporter child, will also produce an image with the given scaled quality. Will also use the selected compression algorithm if supported by the image format. This will do a black-box export using a ProcessExport routine. After the export is completed, a world file will also be created if a map projection exists.
outputName | The filename of the output cube |
quality | The quality of the output from 0 to 100, defaults to 100 |
compression | The compression algorithm used. Image format specific. |
ui | The optional user interface to set the input image pixel range. |
Reimplemented in Isis::JP2Exporter, Isis::QtExporter, and Isis::TiffExporter.
References Isis::ImageExporter::process().
Referenced by Isis::JP2Exporter::write(), Isis::QtExporter::write(), and Isis::TiffExporter::write().
|
protectedvirtual |
Write a line of grayscale data to the output image.
in | Vector containing a single grayscale input line |
Implements Isis::ImageExporter.
References Isis::Buffer::Line(), Isis::ImageExporter::outputPixelValue(), setBuffer(), and writeLine().
|
protectedpure virtual |
Pure virtual method for writing a line of buffered data to the output image on disk.
l | The line of the output image to write to |
Implemented in Isis::JP2Exporter, and Isis::TiffExporter.
Referenced by writeGrayscale(), writeRgb(), and writeRgba().
|
protectedvirtual |
Write a line of RGB data to the output image.
in | Vector containing three input lines (red, green, blue) |
Implements Isis::ImageExporter.
References Isis::ImageExporter::outputPixelValue(), setBuffer(), and writeLine().
|
protectedvirtual |
Write a line of RGBA data to the output image.
in | Vector containing four input lines (red, green, blue, alpha) |
Implements Isis::ImageExporter.
References Isis::ImageExporter::outputPixelValue(), setBuffer(), and writeLine().