]> Creatis software - cpPlugins.git/blob - appli/examples/plugins/ConvertImage.cxx
...
[cpPlugins.git] / appli / examples / plugins / ConvertImage.cxx
1 #include <iostream>
2 #include <cpPlugins/Interface/Plugins.h>
3
4 int main( int argc, char* argv[] )
5 {
6   // Manage inputs
7   if( argc < 3 )
8   {
9     std::cerr
10       << "Usage: " << argv[ 0 ]
11       << " image_file(s) output_file" << std::endl;
12     return( 1 );
13
14   } // fi
15
16   // Create interface and load library
17   cpPlugins::Interface::Plugins::Pointer interface =
18     cpPlugins::Interface::Plugins::New( );
19   try
20   {
21     interface->LoadEnvironments( );
22     interface->GuessPlugins( );
23   }
24   catch( std::exception& err )
25   {
26     std::cerr << "Error caught: " << err.what( ) << std::endl;
27     return( 1 );
28
29   } // yrt
30
31   // Create filters
32   auto reader = interface->CreateProcessObject( "IO", "ImageReader" );
33   auto writer = interface->CreateProcessObject( "IO", "ImageWriter" );
34   if( reader.IsNull( ) )
35   {
36     std::cerr
37       << "Error caugh: Could not create a valid image reader."
38       << std::endl;
39     return( 1 );
40
41   } // fi
42   if( writer.IsNull( ) )
43   {
44     std::cerr
45       << "Error caugh: Could not create a valid image writer."
46       << std::endl;
47     return( 1 );
48
49   } // fi
50
51   // Configure reader
52   reader->PrintExecutionOn( );
53   auto parameters = reader->GetParameters( );
54   for( int i = 1; i < argc - 1; ++i )
55     parameters->AddToOpenFileNameList( "FileNames",  argv[ i ] );
56
57   // Configure writer
58   writer->PrintExecutionOn( );
59   parameters = writer->GetParameters( );
60   parameters->SetSaveFileName( "FileName",  argv[ argc - 1 ] );
61
62   // Connect filters
63   writer->SetInput( "Input", reader->GetOutput( "Output" ) );
64
65   // Execute reader
66   try
67   {
68     writer->Update( );
69   }
70   catch( std::exception& err )
71   {
72     std::cerr << "Error caugth: " << err.what( ) << std::endl;
73     return( 1 );
74
75   } // yrt
76
77   // Finish
78   return( 0 );
79 }
80
81 // eof - $RCSfile$