1 #include <cpPluginsIO/ImageWriter.h>
2 #include <cpPlugins/Image.h>
3 #include <cpPlugins_Instances/ImagesIO.h>
5 // -------------------------------------------------------------------------
6 cpPluginsIO::ImageWriter::
10 this->_AddInput( "Input" );
11 this->m_Parameters.Clear( );
12 this->m_Parameters.ConfigureAsSaveFileName( "FileName" );
13 this->m_Parameters.SetAcceptedFileExtensions(
15 "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)"
19 // -------------------------------------------------------------------------
20 cpPluginsIO::ImageWriter::
25 // -------------------------------------------------------------------------
26 std::string cpPluginsIO::ImageWriter::
29 auto input = this->GetInputData( "Input" );
32 std::string r = cpPlugin_Image_Demangle_Dim( _GD0, input, 3 );
33 if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 2 );
35 if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 4 );
36 if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 1 );
40 catch( itk::ExceptionObject& err )
42 return( "IO::ImageWriter: " + std::string( err.GetDescription( ) ) );
46 // -------------------------------------------------------------------------
47 template< class _TInput >
48 std::string cpPluginsIO::ImageWriter::
49 _GD0( _TInput* image )
51 static const unsigned int D = _TInput::ImageDimension;
53 return( "IO::ImageWriter: Invalid image dimension." );
55 std::string cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD1, image, D );
56 if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllColor( r, _GD1, image, D );
60 // -------------------------------------------------------------------------
61 template< class _TInput >
62 std::string cpPluginsIO::ImageWriter::
63 _GD1( _TInput* image )
65 typedef itk::ImageFileWriter< _TInput > _TFilter;
68 return( "IO::ImageWriter: Invalid pixel type." );
69 auto f = this->_CreateITK< _TFilter >( );
70 f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );