|
Isis 3.0 Developer's Reference (API) |
Home |
Exports cubes into TIFF images. More...
#include <TiffExporter.h>
Inherits Isis::StreamExporter.
Public Member Functions | |
| TiffExporter () | |
| Construct the TIFF exporter. | |
| virtual | ~TiffExporter () |
| Destruct the exporter. | |
| virtual void | write (FileName outputName, int quality=100) |
| Open the output file for writing, initialize its fields, then let the base ImageExporter handle the generic black-box writing routine. | |
| 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 | setType (ExportDescription &desc) |
| Set the pixel type from the description and create the buffer. | |
| 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. | |
| 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 | getInputMinimum (int channel) const |
| Returns the input minimum for the given channel. | |
| double | getInputMaximum (int channel) const |
| Returns the input maximum for the given channel. | |
| void | setOutputRange (double min, double max) |
| Set the input DN floor and ceiling. | |
Static Public Member Functions | |
| static bool | canWriteFormat (QString format) |
| Returns true if the format is "tiff". | |
| 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 | createBuffer () |
| Creates 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 |
| Set the DN value at the given sample and band, resolved to a single index, of the line buffer. | |
| virtual void | writeLine (int l) const |
| Writes a line of buffered data to the output image on disk. | |
| virtual void | initialize (ExportDescription &desc) |
| Generic initialization with the export description. | |
| PixelType | getPixelType () const |
| Returns the pixel type. | |
| 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. | |
| void | setExtension (QString extension) |
| Sets the extension for the output image and generates the extension for the world file from it. | |
| Cube * | setInput (ExportDescription &desc) |
| Sets up the export process with the parameters described within the given description. | |
| ProcessExport & | getProcess () const |
| Get a reference to the process object, useful for subclasses to access and manipulate the process. | |
| virtual int | getPixel (double dn) const |
| Return the output clamped integer pixel value from the input double-precision DN. | |
Exports cubes into TIFF images.
A streamed exporter for TIFF images. Can write an arbitrarily large set of single-band Isis cubes to an arbitrarily large TIFF image with the given pixel type.
typedef void(ImageExporter::* Isis::ImageExporter::WriteChannels)(vector< Buffer * > &in) const [protected, inherited] |
Friendly alias for a method used to write a particular color channel.
| Isis::TiffExporter::TiffExporter | ( | ) |
Construct the TIFF exporter.
References Isis::ImageExporter::setExtension().
| Isis::TiffExporter::~TiffExporter | ( | ) | [virtual] |
Destruct the exporter.
| int Isis::ImageExporter::bands | ( | ) | const [inherited] |
Number of bands (channels) in the output image.
Referenced by createBuffer(), Isis::JP2Exporter::createBuffer(), setBuffer(), write(), and Isis::JP2Exporter::write().
| bool Isis::TiffExporter::canWriteFormat | ( | QString | format | ) | [static] |
Returns true if the format is "tiff".
| format | Lowercase format abbreviation |
Referenced by Isis::ImageExporter::fromFormat().
| void Isis::TiffExporter::createBuffer | ( | ) | [protected, virtual] |
Creates the buffer to store a chunk of streamed line data with one or more bands.
Implements Isis::StreamExporter.
References _FILEINFO_, Isis::ImageExporter::bands(), Isis::StreamExporter::getPixelType(), mult, Isis::ImageExporter::samples(), size, Isis::IException::Unknown, and Isis::UnsignedByte.
| ImageExporter * Isis::ImageExporter::fromFormat | ( | QString | format | ) | [static, inherited] |
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(), canWriteFormat(), and Isis::IException::Programmer.
| double Isis::ImageExporter::getInputMaximum | ( | int | channel | ) | const [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().
| double Isis::ImageExporter::getInputMinimum | ( | int | channel | ) | const [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().
| int Isis::ImageExporter::getPixel | ( | double | dn | ) | const [protected, virtual, inherited] |
Return the output clamped integer pixel value from the input double-precision DN.
| dn | The input DN |
Referenced by Isis::StreamExporter::writeGrayscale(), Isis::QtExporter::writeGrayscale(), Isis::StreamExporter::writeRgb(), Isis::QtExporter::writeRgb(), Isis::StreamExporter::writeRgba(), and Isis::QtExporter::writeRgba().
| PixelType Isis::StreamExporter::getPixelType | ( | ) | const [protected, inherited] |
Returns the pixel type.
Defaults to None if not set by the user.
Referenced by createBuffer(), Isis::JP2Exporter::createBuffer(), setBuffer(), Isis::JP2Exporter::setBuffer(), write(), Isis::JP2Exporter::write(), and Isis::JP2Exporter::writeLine().
| ProcessExport & Isis::ImageExporter::getProcess | ( | ) | const [protected, inherited] |
Get a reference to the process object, useful for subclasses to access and manipulate the process.
Referenced by Isis::ImageExporter::setInput(), Isis::StreamExporter::setType(), and Isis::ImageExporter::write().
| void Isis::StreamExporter::initialize | ( | ExportDescription & | desc | ) | [protected, virtual, inherited] |
Generic initialization with the export description.
Set the input and set the pixel type.
| desc | Export description containing necessary channel information |
References Isis::ImageExporter::setInput(), and Isis::StreamExporter::setType().
Referenced by Isis::StreamExporter::setGrayscale(), Isis::StreamExporter::setRgb(), and Isis::StreamExporter::setRgba().
| int Isis::ImageExporter::lines | ( | ) | const [inherited] |
Number of lines (rows) in the output image.
Referenced by write(), and Isis::JP2Exporter::write().
| void Isis::ImageExporter::operator() | ( | vector< Buffer * > & | in | ) | const [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 |
| int Isis::ImageExporter::samples | ( | ) | const [inherited] |
Number of samples (columns) in the output image.
Referenced by createBuffer(), Isis::JP2Exporter::createBuffer(), write(), and Isis::JP2Exporter::write().
| void Isis::TiffExporter::setBuffer | ( | int | s, | |
| int | b, | |||
| int | dn | |||
| ) | const [protected, virtual] |
Set the DN value at the given sample and band, resolved to a single index, of the line buffer.
| s | The sample component of the index into the buffer | |
| b | The band component of the index into the buffer | |
| dn | The value to set at the given index |
Implements Isis::StreamExporter.
References _FILEINFO_, Isis::ImageExporter::bands(), Isis::StreamExporter::getPixelType(), Isis::IException::Programmer, Isis::SignedWord, Isis::toString(), Isis::UnsignedByte, and Isis::UnsignedWord.
| void Isis::ImageExporter::setExtension | ( | QString | extension | ) | [protected, inherited] |
Sets the extension for the output image and generates the extension for the world file from it.
| extension | The extension for the output image |
Referenced by Isis::JP2Exporter::JP2Exporter(), Isis::QtExporter::QtExporter(), and TiffExporter().
| void Isis::StreamExporter::setGrayscale | ( | ExportDescription & | desc | ) | [virtual, inherited] |
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 Isis::StreamExporter::initialize().
| Cube * Isis::ImageExporter::setInput | ( | ExportDescription & | desc | ) | [protected, inherited] |
Sets up the export process with the parameters described within the given description.
Opens cubes for retrieving input data, establishes the dimensions of the output image, and determines whether to write the data as grayscale, RGB, or RGBA.
| desc | The export description |
References _FILEINFO_, Isis::ExportDescription::channelCount(), cube, Isis::ImageExporter::getProcess(), Isis::Cube::lineCount(), Isis::IException::Programmer, Isis::Cube::sampleCount(), Isis::ProcessExport::SetOutputNull(), Isis::ProcessExport::SetOutputRange(), Isis::ImageExporter::writeGrayscale(), Isis::ImageExporter::writeRgb(), and Isis::ImageExporter::writeRgba().
Referenced by Isis::StreamExporter::initialize(), Isis::QtExporter::setGrayscale(), Isis::QtExporter::setRgb(), and Isis::QtExporter::setRgba().
| void Isis::ImageExporter::setOutputRange | ( | double | min, | |
| double | max | |||
| ) | [inherited] |
Set the input DN floor and ceiling.
All input DNs less than the min will be set to the min in the output. Similarly, all input DNs greater than the max will be set to the max in the output.
| min | The minimum | |
| max | The maximum |
Referenced by Isis::StreamExporter::setType().
| void Isis::StreamExporter::setRgb | ( | ExportDescription & | desc | ) | [virtual, inherited] |
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 Isis::StreamExporter::initialize().
| void Isis::StreamExporter::setRgba | ( | ExportDescription & | desc | ) | [virtual, inherited] |
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 Isis::StreamExporter::initialize().
| void Isis::StreamExporter::setType | ( | ExportDescription & | desc | ) | [inherited] |
Set the pixel type from the description and create the buffer.
| desc | Export description containing necessary bit type information |
References Isis::ProcessExport::BIL, Isis::StreamExporter::createBuffer(), Isis::ExportDescription::getOutputMaximum(), Isis::ExportDescription::getOutputMinimum(), Isis::ExportDescription::getOutputNull(), Isis::ExportDescription::getPixelType(), Isis::ImageExporter::getProcess(), Isis::ProcessExport::SetFormat(), Isis::ProcessExport::SetOutputNull(), Isis::ImageExporter::setOutputRange(), Isis::ProcessExport::SetOutputRange(), and Isis::ProcessExport::SetOutputType().
Referenced by Isis::StreamExporter::initialize().
| void Isis::TiffExporter::write | ( | FileName | outputName, | |
| int | quality = 100 | |||
| ) | [virtual] |
Open the output file for writing, initialize its fields, then let the base ImageExporter handle the generic black-box writing routine.
| outputName | The filename of the output cube | |
| quality | The quality of the output, not used for TIFF |
Reimplemented from Isis::ImageExporter.
References _FILEINFO_, Isis::ImageExporter::bands(), Isis::FileName::expanded(), Isis::StreamExporter::getPixelType(), Isis::ImageExporter::lines(), Isis::IException::Programmer, Isis::ImageExporter::samples(), and Isis::UnsignedByte.
| void Isis::StreamExporter::writeGrayscale | ( | vector< Buffer * > & | in | ) | const [protected, virtual, inherited] |
Write a line of grayscale data to the output image.
| in | Vector containing a single grayscale input line |
Implements Isis::ImageExporter.
References dn, Isis::ImageExporter::getPixel(), Isis::Buffer::Line(), Isis::Buffer::SampleDimension(), Isis::StreamExporter::setBuffer(), and Isis::StreamExporter::writeLine().
| void Isis::TiffExporter::writeLine | ( | int | l | ) | const [protected, virtual] |
Writes a line of buffered data to the output image on disk.
| l | The line of the output image |
Implements Isis::StreamExporter.
References _FILEINFO_, and Isis::IException::Programmer.
| void Isis::StreamExporter::writeRgb | ( | vector< Buffer * > & | in | ) | const [protected, virtual, inherited] |
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::getPixel(), Isis::Buffer::Line(), Isis::Buffer::SampleDimension(), Isis::StreamExporter::setBuffer(), and Isis::StreamExporter::writeLine().
| void Isis::StreamExporter::writeRgba | ( | vector< Buffer * > & | in | ) | const [protected, virtual, inherited] |
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::getPixel(), Isis::Buffer::Line(), Isis::Buffer::SampleDimension(), Isis::StreamExporter::setBuffer(), and Isis::StreamExporter::writeLine().