OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Functions
image_copy_b1.cpp File Reference
#include <iostream>
#include <iterator>
#include "base/data_types/ossimFilename.h"
#include "base/data_types/ossimString.h"
#include "imaging/factory/ossimImageHandlerRegistry.h"
#include "imaging/formats/ossimImageHandler.h"
#include "imaging/formats/ossimImageFileWriter.h"
#include "imaging/factory/ossimImageWriterFactoryRegistry.h"
#include "imaging/tile_sources/ossimBandSelector.h"
#include "init/ossimInit.h"

Go to the source code of this file.

Functions

void usage ()
 
void printOutputTypes ()
 
int main (int argc, char *argv[])
 

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 48 of file image_copy_b1.cpp.

References ossimConnectableObject::connectMyInputTo(), ossimImageWriterFactoryRegistry::createWriter(), ossimImageFileWriter::execute(), ossimInit::initialize(), ossimImageWriterFactoryRegistry::instance(), ossimInit::instance(), ossimImageHandlerRegistry::instance(), ossimImageHandlerRegistry::open(), ossimImageFileWriter::setFilename(), ossimBandSelector::setOutputBandList(), and usage().

49 {
50  ossimInit::instance()->initialize(argc, argv);
51 
52  if(argc!=4)
53  {
54  usage();
55  }
56  else
57  {
58  // try to open up the passed in image
59  //
61 
62  // try to create a writer for the output image type.
63  //
65 
66 
67  if(!handler)
68  {
69  cout << "Unable to open input image: "<< argv[2] << endl;
70  return 1;
71  }
72  if(!writer)
73  {
74  cout << "Unable to create writer of type: " << argv[1] << endl;
75  return 1;
76  }
77  ossimBandSelector* selector = new ossimBandSelector;
78 
79  // specify a lookup table that maps
80  // output band list to each input band
81  // the first output band is mapped to
82  // the first input band 0.
83  //
84  vector<ossim_uint32> outputBandList(1);
85 
86  outputBandList[0] = 0;
87  selector->setOutputBandList(outputBandList);
88 
89  selector->connectMyInputTo(0, handler);
90 
91  // specify the output file name
92  writer->setFilename(ossimFilename(argv[3]));
93  writer->connectMyInputTo(0, selector);
94  writer->execute();
95 
96  delete writer;
97  delete handler;
98  }
99 
100  return 0;
101 }
void initialize(int &argc, char **argv)
Definition: ossimInit.cpp:119
virtual ossimImageHandler * open(const ossimFilename &fileName, bool trySuffixFirst=true, bool openOverview=true) const
open that takes a filename.
static ossimImageWriterFactoryRegistry * instance()
void usage()
Pure virtual base class for image file writers.
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
virtual void setFilename(const ossimFilename &file)
This class defines an abstract Handler which all image handlers(loaders) should derive from...
virtual void setOutputBandList(const vector< ossim_uint32 > &outputBandList, bool disablePassThru=false)
Sets the output band list.
static ossimInit * instance()
Definition: ossimInit.cpp:89
ossimImageFileWriter * createWriter(const ossimFilename &filename) const
static ossimImageHandlerRegistry * instance()
virtual bool execute()
Calls: writeFile() writeMetaDataFiles()

◆ printOutputTypes()

void printOutputTypes ( )

Definition at line 111 of file image_copy_b1.cpp.

References ossimImageWriterFactoryRegistry::getImageTypeList(), and ossimImageWriterFactoryRegistry::instance().

Referenced by usage().

112 {
113  std::vector<ossimString> outputType;
114 
116  std::copy(outputType.begin(),
117  outputType.end(),
118  ostream_iterator<ossimString>(cout, "\n"));
119 }
static ossimImageWriterFactoryRegistry * instance()
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
getImageTypeList.

◆ usage()

void usage ( )

Definition at line 104 of file image_copy_b1.cpp.

References printOutputTypes().

Referenced by main().

105 {
106  cout << "image_copy <output_type> <input filename> <output filename>" << endl
107  << "where output types are: " << endl;
109 }
void printOutputTypes()