#include #include int main( int argc, char* argv[] ) { if( argc < 4 ) { std::cerr << "Usage: " << argv[ 0 ] << " plugins_library input_image(s) output_image" << std::endl; return( 1 ); } // fi // Load interface int ret = 0; cpPlugins::Interface interface; try { interface.LoadPluginFile( argv[ 1 ] ); } catch( std::exception& err ) { std::cerr << "Interface load failed on \"" << argv[ 1 ] << "\": " << err.what( ) << std::endl; ret = 1; } // fi // Create filters cpPlugins::ProcessObject::Pointer reader; cpPlugins::ProcessObject::Pointer writer; try { reader = interface.Create( "IO", "ImageReader" ); if( reader.IsNull( ) ) { std::cerr << "\"IO::ImageReader\" creation failed from \"" << argv[ 1 ] << "\"" << std::endl; ret = 1; } // fi writer = interface.Create( "IO", "ImageWriter" ); if( writer.IsNull( ) ) { std::cerr << "\"IO::ImageWriter\" creation failed from \"" << argv[ 1 ] << "\"" << std::endl; ret = 1; } // fi } catch( std::exception& err ) { std::cerr << "Filter creation failed on \"" << argv[ 1 ] << "\": " << err.what( ) << std::endl; ret = 1; } // yrt if( ret == 0 ) { // Configure filters auto reader_params = reader->GetParameters( ); for( int i = 2; i < argc - 1; ++i ) reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] ); auto writer_params = writer->GetParameters( ); writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] ); // Connect filters writer->SetInput( "Input", reader->GetOutput( "Output" ) ); // Execute filters std::string err = writer->Update( ); if( err != "" ) { std::cout << "Error caught: " << err << std::endl; ret = 1; } // fi } // fi // Ok finish return( ret ); } // eof - $RCSfile$