#include #include #include #include #include // ------------------------------------------------------------------------- cpPluginsIO::ImageWriter:: ImageWriter( ) : Superclass( ) { this->_AddInput( "Input" ); this->m_Parameters.Clear( ); this->m_Parameters.ConfigureAsSaveFileName( "FileName" ); this->m_Parameters.SetAcceptedFileExtensions( "FileName", "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)" ); } // ------------------------------------------------------------------------- cpPluginsIO::ImageWriter:: ~ImageWriter( ) { } // ------------------------------------------------------------------------- std::string cpPluginsIO::ImageWriter:: _GenerateData( ) { auto input = this->GetInputData( "Input" ); try { std::string r = cpPlugin_Image_Demangle_Dim( _GD0, input, 3 ); if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 2 ); if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 4 ); if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 1 ); return( r ); } catch( itk::ExceptionObject& err ) { return( "IO::ImageWriter: " + std::string( err.GetDescription( ) ) ); } } // ------------------------------------------------------------------------- template< class _TInput > std::string cpPluginsIO::ImageWriter:: _GD0( _TInput* image ) { static const unsigned int D = _TInput::ImageDimension; if( image == NULL ) return( "IO::ImageWriter: Invalid image dimension." ); std::string cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD1, image, D ); if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllColor( r, _GD1, image, D ); return( r ); } // ------------------------------------------------------------------------- template< class _TInput > std::string cpPluginsIO::ImageWriter:: _GD1( _TInput* image ) { if( image == NULL ) return( "IO::ImageWriter: Invalid pixel type." ); auto f = this->_CreateITK< itk::ImageFileWriter< _TInput > >( ); f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) ); f->SetInput( image ); f->Update( ); return( "" ); } // eof - $RCSfile$