OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimOpjWriterFactory.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file
4 //
5 // Author: David Burken
6 //
7 // Description: Factory for OSSIM Open JPEG writer.
8 //----------------------------------------------------------------------------
9 // $Id: ossimOpjWriterFactory.cpp 11046 2007-05-25 18:03:03Z gpotts $
10 
11 #include "ossimOpjWriterFactory.h"
12 #include "ossimOpjJp2Writer.h"
15 
17 
19  "ossimOpjWriterFactory",
21 
23 {
24  theInstance = 0;
25 }
26 
28 {
29  if(!theInstance)
30  {
32  }
33  return theInstance;
34 }
35 
37  const ossimString& fileExtension)const
38 {
39  ossimOpjJp2Writer* writer = 0;
40  if ( (fileExtension == "jp2") || (fileExtension == "JP2") || (fileExtension == "j2k"))
41  {
42  writer = new ossimOpjJp2Writer();
43  }
44  return writer;
45 }
46 
48  const ossimKeywordlist& kwl, const char *prefix)const
49 {
51  const char* type = kwl.find(prefix, ossimKeywordNames::TYPE_KW);
52  if (type)
53  {
54  writer = createWriter(ossimString(type));
55  if (writer.valid())
56  {
57  if (writer->loadState(kwl, prefix) == false)
58  {
59  writer = 0;
60  }
61  }
62  }
63  return writer.release();
64 }
65 
67  const ossimString& typeName)const
68 {
70  if (typeName == "ossimOpjJp2Writer")
71  {
72  writer = new ossimOpjJp2Writer;
73  }
74  else
75  {
76  // See if the type name is supported by the writer.
77  writer = new ossimOpjJp2Writer(typeName);
78  if ( writer->hasImageType(typeName) == false )
79  {
80  writer = 0;
81  }
82  }
83  return writer.release();
84 }
85 
87  const ossimKeywordlist& kwl, const char *prefix)const
88 {
89  return createWriter(kwl, prefix);
90 }
91 
93  const ossimString& typeName) const
94 {
95  return createWriter(typeName);
96 }
97 
99  std::vector<ossimString>& result)const
100 {
101  result.push_back("jp2");
102  result.push_back("j2k");
103 }
104 
105 void ossimOpjWriterFactory::getTypeNameList(std::vector<ossimString>& typeList) const
106 {
107  typeList.push_back(ossimString("ossimOpjJp2Writer"));
108 }
109 
110 void ossimOpjWriterFactory::getImageTypeList(std::vector<ossimString>& imageTypeList) const
111 {
112  // include both geotiff and gmljp2 headers
113  imageTypeList.push_back( ossimString("ossim_opj_jp2") );
114 
115  // include only a geotiff header
116  imageTypeList.push_back( ossimString("ossim_opj_geojp2") );
117 
118  // include only a gmljp2 header
119  imageTypeList.push_back( ossimString("ossim_opj_gmljp2") );
120 }
121 
124  const ossimString& ext) const
125 {
126  ossimString testExt = ext.downcase();
127  if ( (testExt == "jp2") || (testExt == "j2k") )
128  {
129  result.push_back(new ossimOpjJp2Writer);
130  }
131 }
132 
135  const ossimString& mimeType)const
136 {
137  if ( (mimeType == "image/jp2") || (mimeType == "image/j2k") )
138  {
139  result.push_back( new ossimOpjJp2Writer() );
140  }
141 }
142 
144 
146 
148 
149 
150 
151 
static ossimOpjWriterFactory * theInstance
static instance of this class
virtual void getImageFileWritersBySuffix(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &ext) const
Adds an ossimOpjJp2Writer instance to writer list.
virtual void getImageFileWritersByMimeType(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &mimeType) const
Represents serializable keyword/value map.
bool valid() const
Definition: ossimRefPtr.h:75
const char * find(const char *key) const
ossimOpjWriterFactory()
hidden from use default constructor
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Pure virtual base class for image file writers.
static const char * TYPE_KW
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds "ossimOpjWriter" to list.
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
Adds "ossim_opj_jp2", "ossim_opj_geojp2", and "ossim_opj_gmljp2" to writer list.
virtual ossimImageFileWriter * createWriter(const ossimKeywordlist &kwl, const char *prefix=0) const
Create that takes a keyword list and prefix.
void operator=(const ossimOpjWriterFactory &)
hidden from use copy constructor
T * release()
Definition: ossimRefPtr.h:93
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
static ossimOpjWriterFactory * instance()
static method to return instance (the only one) of this class.
virtual void getExtensions(std::vector< ossimString > &extList) const
Adds "jp2" to list.
virtual ossimImageFileWriter * createWriterFromExtension(const ossimString &fileExtension) const
Creates a writer from extension like "jp2".
std::vector< ossimRefPtr< ossimImageFileWriter > > ImageFileWriterList
virtual ~ossimOpjWriterFactory()
virtual destructor
Factory for OpenJPEG image writer.
virtual ossimObject * createObject(const ossimKeywordlist &kwl, const char *prefix=0) const
Creates and object given a keyword list.
RTTI_DEF1(ossimOpjWriterFactory, "ossimOpjWriterFactory", ossimImageWriterFactoryBase)