Isis 3.0 Programmer Reference
Back | Home
ImageExporter.h
Go to the documentation of this file.
1 #ifndef ImageExporter_h
2 #define ImageExporter_h
3 
27 #include <vector>
28 
29 #include <QString>
30 
31 #include "PixelType.h"
32 
33 using std::vector;
34 
35 namespace Isis {
36  class Buffer;
37  class Cube;
38  class CubeAttributeOutput;
39  class ExportDescription;
40  class FileName;
41  class ProcessExport;
42 
70  class ImageExporter {
71  public:
72  ImageExporter();
73  virtual ~ImageExporter();
74 
75  void operator()(vector<Buffer *> &in) const;
76 
77  virtual void write(FileName outputName, int quality=100,
78  QString compression="none");
79 
80  int samples() const;
81  int lines() const;
82  int bands() const;
83 
84  double inputMinimum(int channel) const;
85  double inputMaximum(int channel) const;
86 
87  void setOutputPixelRange(double outputPixelMinimum, double outputPixelMaximum);
88 
94  virtual void setGrayscale(ExportDescription &desc) = 0;
95 
101  virtual void setRgb(ExportDescription &desc) = 0;
102 
108  virtual void setRgba(ExportDescription &desc) = 0;
109 
110  static ImageExporter *fromFormat(QString format);
111 
112  protected:
114  typedef void (ImageExporter::*WriteChannels)(vector<Buffer *> &in) const;
115 
116  virtual void initialize(ExportDescription &desc) = 0;
117 
118  // member variable mutators
119  void setExtension(QString extension);
122 
123  // member variable accessors for child classes
124  QString extension() const;
126  ProcessExport &process() const;
127  PixelType pixelType() const;
128 
129  virtual int outputPixelValue(double dn) const;
130 
137  virtual void writeGrayscale(vector<Buffer *> &in) const = 0;
138 
144  virtual void writeRgb(vector<Buffer *> &in) const = 0;
145 
152  virtual void writeRgba(vector<Buffer *> &in) const = 0;
153 
154  private:
155  Cube *addChannel(int i);
156  void createWorldFile(FileName outputName);
157 
158  private:
161 
164 
166  QString m_extension;
167 
170 
173 
175  int m_lines;
176 
178  int m_bands;
179 
183 
187 
192  };
193 };
194 
195 
196 #endif
int m_samples
Number of samples (columns) in the output image.
ExportDescription * m_exportDescription
! The description for the export.
QString m_worldExtension
Extension to append to the output world file.
int samples() const
Number of samples (columns) in the output image.
File name manipulation and expansion.
Definition: FileName.h:111
Cube * initializeProcess()
Sets up the export process with the parameters described within the given description.
Process class for exporting cubes.
ProcessExport & process() const
Get a reference to the process object, useful for subclasses to access and manipulate the process...
static ImageExporter * fromFormat(QString format)
A static (factory) method for constructing an ImageExporter instance from an output format...
Export Isis cubes into standard formats.
Definition: ImageExporter.h:70
virtual void setGrayscale(ExportDescription &desc)=0
Pure virtual method for setting up an export to a grayscale image.
ImageExporter()
Construct the exporter.
double m_outputPixelMaximum
! The absolute maximum value for the output pixels.
virtual int outputPixelValue(double dn) const
Return the output clamped integer pixel value from the input double-precision DN. ...
void(ImageExporter::* WriteChannels)(vector< Buffer * > &in) const
Friendly alias for a method used to write a particular color channel.
void setExtension(QString extension)
Sets the extension for the output image and generates the extension for the world file from it...
PixelType pixelType() const
Returns the pixel type.
int bands() const
Number of bands (channels) in the output image.
int lines() const
Number of lines (rows) in the output image.
QString extension() const
Gets the extension for the output image.
PixelType
Enumerations for Isis Pixel Types.
Definition: PixelType.h:43
int m_lines
Number of lines (rows) in the output image.
ProcessExport * m_process
The object that feeds lines to this instance and handles stretching.
int m_bands
Number of bands (channels) in the output image.
QString m_extension
Extension to append to the output image if not already provided.
void setExportDescription(ExportDescription &desc)
Sets the description for the output image.
virtual void setRgb(ExportDescription &desc)=0
Pure virtual method for setting up an export to an RGB image.
ExportDescription & exportDescription() const
Gets the description for the output image.
Describes how a series of cubes should be exported.
virtual void setRgba(ExportDescription &desc)=0
Pure virtual method for setting up an export to an RGBA image.
WriteChannels m_writeMethod
Method pointer to one of the pure virtual write methods.
virtual void initialize(ExportDescription &desc)=0
Generic initialization with the export description.
double inputMinimum(int channel) const
Returns the input minimum for the given channel.
void setOutputPixelRange(double outputPixelMinimum, double outputPixelMaximum)
Set the DN floor and ceiling for the exported image.
virtual void writeRgba(vector< Buffer * > &in) const =0
Pure virtual method for writing a line of RGBA data to the output image.
double inputMaximum(int channel) const
Returns the input maximum for the given channel.
virtual void write(FileName outputName, int quality=100, QString compression="none")
Export the Isis cube channels to the given standard image.
void operator()(vector< Buffer * > &in) const
The method for writing a line of input image data (with potentially several bands representing color ...
virtual ~ImageExporter()
Destruct the exporter.
Cube * addChannel(int i)
Add a channel of input data to the process from the export description at the given index...
double m_outputPixelMinimum
! The absolute minimum value for the output pixels.
void createWorldFile(FileName outputName)
Creates a world file is the input has a map projection.
virtual void writeRgb(vector< Buffer * > &in) const =0
Pure virtual method for writing a line of RGB data to the output image.
virtual void writeGrayscale(vector< Buffer * > &in) const =0
Pure virtual method for writing a line of grayscale data to the output image.
IO Handler for Isis Cubes.
Definition: Cube.h:158

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:20:01