]> Creatis software - cpPlugins.git/blob - appli/examples/plugins/example_ReadWriteImage.cxx
5532068d1fda42aa8aa5324da6a5a1fa5ca0f849
[cpPlugins.git] / appli / examples / plugins / example_ReadWriteImage.cxx
1 #include <iostream>
2 #include <cpPlugins/Interface.h>
3
4 int main( int argc, char* argv[] )
5 {
6   if( argc < 3 )
7   {
8     std::cerr
9       << "Usage: " << argv[ 0 ]
10       << " input_image(s) output_image" << std::endl;
11     return( 1 );
12
13   } // fi
14
15   // Load interface
16   int ret = 0;
17   cpPlugins::Interface interface;
18   interface.GuessAccesiblePlugins( );
19
20   // Create filters
21   cpPlugins::ProcessObject::Pointer reader;
22   cpPlugins::ProcessObject::Pointer writer;
23   try
24   {
25     reader = interface.Create( "IO", "ImageReader" );
26     if( reader.IsNull( ) )
27     {
28       std::cerr
29         << "\"IO::ImageReader\" creation failed."
30         << std::endl;
31       ret = 1;
32
33     } // fi
34     writer = interface.Create( "IO", "ImageWriter" );
35     if( writer.IsNull( ) )
36     {
37       std::cerr
38         << "\"IO::ImageWriter\" creation failed."
39         << std::endl;
40       ret = 1;
41
42     } // fi
43   }
44   catch( std::exception& err )
45   {
46     std::cerr
47       << "Filter creation failed: "
48       << err.what( )
49       << std::endl;
50     ret = 1;
51
52   } // yrt
53
54   if( ret == 0 )
55   {
56     // Configure filters
57     auto reader_params = reader->GetParameters( );
58     for( int i = 1; i < argc - 1; ++i )
59       reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
60     auto writer_params = writer->GetParameters( );
61     writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] );
62
63     // Connect filters
64     writer->SetInput( "Input", reader->GetOutput( "Output" ) );
65
66     // Execute filters
67     try
68     {
69       writer->Update( );
70     }
71     catch( itk::ExceptionObject& err )
72     {
73       std::cout << "Error caught: " << err << std::endl;
74       ret = 1;
75
76     } // fi
77
78   } // fi
79
80   // Ok finish
81   return( ret );
82 }
83
84 // eof - $RCSfile$