#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( ) { } // ------------------------------------------------------------------------- void cpPluginsIO::ImageWriter:: _GenerateData( ) { auto image = this->GetInputData< itk::DataObject >( "Input" ); cpPlugins_Image_Demangle_Dim ( _GD0, image, 2 ); else cpPlugins_Image_Demangle_Dim( _GD0, image, 3 ); else this->_Error( "No valid input image dimension" ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsIO::ImageWriter:: _GD0( _TImage* image ) { static const unsigned int D = _TImage::ImageDimension; cpPlugins_Image_Demangle_Pixel_AllScalars ( _GD1, image, D ); else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGB, D ); else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGBA, D ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsIO::ImageWriter:: _GD1( _TImage* image ) { typedef itk::ImageFileWriter< _TImage > _TFilter; auto f = this->_CreateITK< _TFilter >( ); f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) ); f->SetInput( image ); try { f->Update( ); } catch( itk::ExceptionObject& err ) { this->_Error( err.GetDescription( ) ); } // yrt } // eof - $RCSfile$