1 #include <cpPluginsIO/ImageWriter.h>
2 #include <cpPlugins/Image.h>
4 #include <itkImageFileWriter.h>
5 #include <itkImageFileWriter.hxx>
6 #include <itkImageAlgorithm.hxx>
8 // -------------------------------------------------------------------------
9 cpPluginsIO::ImageWriter::
13 this->_AddInput( "Input" );
14 this->m_Parameters.Clear( );
15 this->m_Parameters.ConfigureAsSaveFileName( "FileName" );
16 this->m_Parameters.SetAcceptedFileExtensions(
18 "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)"
22 // -------------------------------------------------------------------------
23 cpPluginsIO::ImageWriter::
28 // -------------------------------------------------------------------------
29 std::string cpPluginsIO::ImageWriter::
32 auto input = this->GetInputData( "Input" );
35 std::string r = cpPlugin_Image_Demangle_Dim( _GD0, input, 3 );
36 if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 2 );
37 if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 4 );
38 if( r != "" ) r = cpPlugin_Image_Demangle_Dim( _GD0, input, 1 );
41 catch( itk::ExceptionObject& err )
43 return( "IO::ImageWriter: " + std::string( err.GetDescription( ) ) );
47 // -------------------------------------------------------------------------
49 std::string cpPluginsIO::ImageWriter::
52 static const unsigned int D = I::ImageDimension;
54 return( "IO::ImageWriter: Invalid image dimension." );
56 std::string cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD1, image, D );
57 if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllColor( r, _GD1, image, D );
61 // -------------------------------------------------------------------------
63 std::string cpPluginsIO::ImageWriter::
67 return( "IO::ImageWriter: Invalid pixel type." );
68 auto f = this->_CreateITK< itk::ImageFileWriter< I > >( );
69 f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );