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 void cpPluginsIO::ImageWriter::
29 auto image = this->GetInputData( "Input" )->GetITK< itk::DataObject >( );
30 cpPlugins_Image_Demangle_Dim ( _GD0, image, 2 );
31 else cpPlugins_Image_Demangle_Dim( _GD0, image, 3 );
32 else this->_Error( "No valid input image dimension" );
35 // -------------------------------------------------------------------------
36 template< class _TImage >
37 void cpPluginsIO::ImageWriter::
38 _GD0( _TImage* image )
40 static const unsigned int D = _TImage::ImageDimension;
41 cpPlugins_Image_Demangle_Pixel_AllScalars ( _GD1, image, D );
42 else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGB, D );
43 else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGBA, D );
46 // -------------------------------------------------------------------------
47 template< class _TImage >
48 void cpPluginsIO::ImageWriter::
49 _GD1( _TImage* image )
51 typedef itk::ImageFileWriter< _TImage > _TFilter;
52 auto f = this->_CreateITK< _TFilter >( );
53 f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
59 catch( itk::ExceptionObject& err )
61 this->_Error( err.GetDescription( ) );