OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimPngWriterFactory.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 Portable Network Graphics (PNG) writer.
8 //----------------------------------------------------------------------------
9 // $Id: ossimPngWriterFactory.cpp 18003 2010-08-30 18:02:52Z gpotts $
10 
11 #include "ossimPngWriterFactory.h"
12 #include "ossimPngWriter.h"
14 #include <ossim/base/ossimRefPtr.h>
16 
18 
20  "ossimPngWriterFactory",
22 
24 {
25  theInstance = 0;
26 }
27 
29 {
30  if(!theInstance)
31  {
33  }
34  return theInstance;
35 }
36 
38  const ossimString& fileExtension)const
39 {
40  ossimRefPtr<ossimPngWriter> writer = 0;
41  if ( (fileExtension == "png") || (fileExtension == ".png") )
42  {
43  writer = new ossimPngWriter;
44  }
45  return writer.release();
46 }
47 
50  const char *prefix)const
51 {
53  const char* type = kwl.find(prefix, ossimKeywordNames::TYPE_KW);
54  if (type)
55  {
56  writer = createWriter(ossimString(type));
57  if ( writer.valid() )
58  {
59  if (writer->loadState(kwl, prefix) == false)
60  {
61  writer = 0;
62  }
63  }
64  }
65  return writer.release();
66 }
67 
69  const ossimString& typeName)const
70 {
72  if (typeName == "ossimPngWriter")
73  {
74  writer = new ossimPngWriter;
75  }
76  else
77  {
78  // See if the type name is supported by the writer.
79  writer = new ossimPngWriter;
80  if ( writer->hasImageType(typeName) == false )
81  {
82  writer = 0;
83  }
84  }
85  return writer.release();
86 }
87 
89  const char *prefix)const
90 {
91  return createWriter(kwl, prefix);
92 }
93 
95  const ossimString& typeName) const
96 {
97  return createWriter(typeName);
98 }
99 
101  std::vector<ossimString>& result)const
102 {
103  result.push_back("png");
104 }
105 
106 void ossimPngWriterFactory::getTypeNameList(std::vector<ossimString>& typeList)const
107 {
108  typeList.push_back(ossimString("ossimPngWriter"));
109 }
110 
111 void ossimPngWriterFactory::getImageTypeList(std::vector<ossimString>& imageTypeList)const
112 {
114  writer->getImageTypeList(imageTypeList);
115  writer = 0;
116 }
117 
119  const ossimString& ext)const
120 {
121  ossimString testExt = ext.downcase();
122  if(testExt == "png")
123  {
124  result.push_back(new ossimPngWriter);
125  }
126 }
127 
129  const ossimString& mimeType)const
130 {
131  ossimString testMime = mimeType.downcase();
132  if(testMime == "image/png")
133  {
134  result.push_back(new ossimPngWriter);
135  }
136 }
137 
139 
141 
143 
144 
145 
146 
Factory for PNG image writer.
RTTI_DEF1(ossimPngWriterFactory, "ossimPngWriterFactory", ossimImageWriterFactoryBase)
static ossimPngWriterFactory * theInstance
static instance of this class
Represents serializable keyword/value map.
bool valid() const
Definition: ossimRefPtr.h:75
const char * find(const char *key) const
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds "ossimPngWriter" to list.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
virtual ~ossimPngWriterFactory()
virtual destructor
Pure virtual base class for image file writers.
static const char * TYPE_KW
virtual void getExtensions(std::vector< ossimString > &extList) const
Adds "png" to list.
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
virtual void getImageFileWritersByMimeType(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &mimeType) const
ossimPngWriterFactory()
hidden from use default constructor
T * release()
Definition: ossimRefPtr.h:93
virtual ossimImageFileWriter * createWriterFromExtension(const ossimString &fileExtension) const
Creates a writer from extension like "png".
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
Adds "ossim_png" to writer list.
virtual void getImageFileWritersBySuffix(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &ext) const
std::vector< ossimRefPtr< ossimImageFileWriter > > ImageFileWriterList
virtual ossimObject * createObject(const ossimKeywordlist &kwl, const char *prefix=0) const
Creates and object given a keyword list.
static ossimPngWriterFactory * instance()
static method to return instance (the only one) of this class.
void operator=(const ossimPngWriterFactory &)
hidden from use copy constructor
virtual ossimImageFileWriter * createWriter(const ossimKeywordlist &kwl, const char *prefix=0) const
Create that takes a keyword list and prefix.