OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimWriter.h
Go to the documentation of this file.
1 //---
2 //
3 // License: MIT
4 //
5 // Author: David Burken
6 //
7 // Description: Generic image writer class.
8 //
9 //---
10 // $Id$
11 #ifndef ossimWriter_HEADER
12 #define ossimWriter_HEADER 1
13 
15 #include <ossim/base/ossimIpt.h>
17 #include <iosfwd>
18 #include <vector>
19 
20 class ossimKeywordlist;
21 class ossimProperty;
22 
29 {
30 public:
31 
33  ossimWriter();
34 
36  virtual ~ossimWriter();
37 
39  virtual ossimString getShortName() const;
40 
42  virtual ossimString getLongName() const;
43 
45  virtual ossimString getClassName() const;
46 
55  virtual ossimString getExtension() const;
56 
69  virtual void getImageTypeList(std::vector<ossimString>& imageTypeList) const;
70 
75  virtual bool isOpen()const;
76 
81  virtual bool open();
82 
84  virtual void close();
85 
86  bool hasImageType(const ossimString& imageType) const;
87 
93  virtual bool writeStream();
94 
104  virtual bool setOutputStream(std::ostream& str);
105 
110  virtual void setTileSize(const ossimIpt& tileSize);
111 
116  virtual const ossimIpt& getOutputTileSize() const;
117 
121  virtual bool saveState(ossimKeywordlist& kwl,
122  const char* prefix=0)const;
123 
128  virtual bool loadState(const ossimKeywordlist& kwl,
129  const char* prefix=0);
130 
137  virtual void setProperty(ossimRefPtr<ossimProperty> property);
138 
145  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name) const;
146 
152  virtual void getPropertyNames(std::vector<ossimString>& propertyNames) const;
153 
154 
155 
156 protected:
157 
162  virtual bool writeFile();
163 
164 private:
165 
170  bool writeStreamTtbs();
171 
176  bool writeTiffHdr();
177 
186  bool writeTiffTags( const std::vector<ossim_uint64>& tile_offsets,
187  const std::vector<ossim_uint64>& tile_byte_counts,
188  const std::vector<ossim_float64>& minBands,
189  const std::vector<ossim_float64>& maxBands );
190 
197  bool writeMinMaxTiffTags( std::streamoff& arrayWritePos );
198 
199 
210  bool writeSMinSMaxTiffTags( const std::vector<ossim_float64>& minBands,
211  const std::vector<ossim_float64>& maxBands,
212  std::streamoff& arrayWritePos );
213 
223  template <class T> void writeTiffTag(ossim_uint16 tag, ossim_uint16 type,
224  ossim_uint64 count,
225  const T* value,
226  std::streamoff& arrayWritePos );
227 
241  bool writeTiffTilesBandSeparate( std::vector<ossim_uint64>& tile_offsets,
242  std::vector<ossim_uint64>& tile_byte_counts,
243  std::vector<ossim_float64>& minBands,
244  std::vector<ossim_float64>& maxBands );
245 
251  ossim_uint16 getTiffSampleFormat() const;
252 
256  bool isTiled() const;
257 
263  bool getAlignTilesFlag() const;
264 
270  ossim_int64 getBlockSize() const;
271 
277  bool getFlushTilesFlag() const;
278 
285  bool getWriteBlanksFlag() const;
286 
287  bool needsMinMax() const;
288 
291 
294 
296 
297 }; // End: class ossimWriter
298 
299 #endif /* End of "#ifndef ossimWriter_HEADER" */
ossimWriter - Generic image writer.
Definition: ossimWriter.h:28
virtual void close()=0
Represents serializable keyword/value map.
virtual ossimString getExtension() const
Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for...
virtual bool writeFile()=0
Write out the file.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual void setTileSize(const ossimIpt &tileSize)
Sets the output image tiling size if supported by the writer.
virtual ossimString getClassName() const
Definition: ossimObject.cpp:64
Pure virtual base class for image file writers.
unsigned short ossim_uint16
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual bool setOutputStream(ossimRefPtr< ossimOStream > stream)
Sets the output stream to write to.
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
std::ostream * m_str
Definition: ossimWriter.h:289
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const =0
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
ossimRefPtr< ossimKeywordlist > m_kwl
Hold all options.
Definition: ossimWriter.h:293
virtual bool writeStream()
Method to write the image to a stream.
unsigned long long ossim_uint64
ossimIpt m_outputTileSize
Definition: ossimWriter.h:295
virtual ossimString getLongName() const
Definition: ossimObject.cpp:53
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
virtual bool isOpen() const =0
virtual void setProperty(ossimRefPtr< ossimProperty > property)
#define OSSIM_DLL
virtual bool open()=0
long long ossim_int64
bool m_ownsStreamFlag
Definition: ossimWriter.h:290
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23