]> Creatis software - cpPlugins.git/blob - appli/examples/example_ReadWriteImageWithWorkspace.cxx
630744ac3df7297d4dcbc43d1a4489ec124d5dde
[cpPlugins.git] / appli / examples / example_ReadWriteImageWithWorkspace.cxx
1 #include <iostream>
2 #include <cpPlugins/Interface.h>
3 #include <cpPlugins/Workspace.h>
4
5 int main( int argc, char* argv[] )
6 {
7   if( argc < 4 )
8   {
9     std::cerr
10       << "Usage: " << argv[ 0 ]
11       << " plugins_library input_image(s) output_image" << std::endl;
12     return( 1 );
13
14   } // fi
15
16   // Load interface
17   int ret = 0;
18   cpPlugins::Interface interface;
19   try
20   {
21     interface.LoadPluginFile( argv[ 1 ] );
22   }
23   catch( std::exception& err )
24   {
25     std::cerr
26       << "Interface load failed on \"" << argv[ 1 ] << "\": "
27       << err.what( )
28       << std::endl;
29     ret = 1;
30
31   } // fi
32
33   // Create filters
34   cpPlugins::Workspace workspace;
35   workspace.SetInterface( &interface );
36   auto reader = workspace.CreateFilter( "IO", "ImageReader", "reader" );
37   auto writer = workspace.CreateFilter( "IO", "ImageWriter", "writer" );
38   workspace.Connect( "reader", "writer", "Output", "Input" );
39
40   // Configure filters
41   auto reader_params = reader->GetParameters( );
42   for( int i = 2; i < argc - 1; ++i )
43     reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
44   auto writer_params = writer->GetParameters( );
45   writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] );
46
47   // Execute
48   std::string err = workspace.Execute( );
49   if( err != "" )
50   {
51     std::cout << "Error caught: " << err << std::endl;
52     ret = 1;
53
54   } // fi
55
56   // Ok finish
57   return( ret );
58 }
59
60 // eof - $RCSfile$