#include #include int main( int argc, char* argv[] ) { if( argc < 2 ) { std::cerr << "Usage: " << argv[ 0 ] << " input_file(s) output_file" << std::endl; return( 1 ); } // fi // Get plugins loader cpPlugins::Interface::Loader loader; try { loader.RegisterFromDirectory( "." ); } catch( std::exception& err ) { std::cerr << "Error caught: " << err.what( ) << std::endl; return( 1 ); } // yrt // Try to get any errors try { // Create filters auto reader = loader.CreateFilter( "IO", "ImageReader", "reader" ); auto writer = loader.CreateFilter( "IO", "ImageWriter", "writer" ); // Configure parameters auto reader_params = reader->GetParameters( ); auto writer_params = writer->GetParameters( ); for( int i = 1; i < argc - 1; ++i ) reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] ); writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] ); // Connect filters writer->SetInput( "Input", reader->GetOutput( "Output" ) ); // Execute reader->PrintExecutionOn( ); writer->PrintExecutionOn( ); writer->Update( ); } catch( std::exception& err ) { std::cerr << "Error caught: " << err.what( ) << std::endl; return( 1 ); } // yrt // Close connection to loaded plugins file loader.UnRegisterAll( ); return( 0 ); } // eof - $RCSfile$