1 #include <ITKIO/ImageWriter.h>
2 #include <cpInstances/Image.h>
3 #include <cpPlugins/QT/SaveFileDialog.h>
5 #define ITKIOImageBase_HIDDEN
6 #include <itkImageFileWriter.h>
10 # include <QApplication>
11 #endif // cpPlugins_QT4
13 // -------------------------------------------------------------------------
14 QDialog* cpPluginsITKIO::ImageWriter::
18 cpPlugins::QT::SaveFileDialog* dlg = NULL;
19 if( QApplication::instance( ) != NULL )
21 dlg = new cpPlugins::QT::SaveFileDialog( );
22 dlg->SetParameters( &( this->m_Parameters ), "FileName" );
26 #else // cpPlugins_QT4
28 #endif // cpPlugins_QT4
31 // -------------------------------------------------------------------------
32 cpPluginsITKIO::ImageWriter::
36 this->_ConfigureInput< cpInstances::Image >( "Input", true, false );
37 this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" );
38 this->m_Parameters.SetAcceptedFileExtensions(
40 "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)"
44 // -------------------------------------------------------------------------
45 cpPluginsITKIO::ImageWriter::
50 // -------------------------------------------------------------------------
51 void cpPluginsITKIO::ImageWriter::
54 auto o = this->GetInputData( "Input" );
55 cpPlugins_Demangle_Image_ProcessDims_1( o, _GD0 )
56 cpPlugins_Demangle_Image_DiffTensors3D_1( o, _GD1 )
57 this->_Error( "Invalid input image dimension." );
60 // -------------------------------------------------------------------------
61 template< class _TImage >
62 void cpPluginsITKIO::ImageWriter::
63 _GD0( _TImage* image )
65 cpPlugins_Demangle_Image_ScalarPixels_1( image, _GD1, _TImage::ImageDimension )
66 cpPlugins_Demangle_Image_ComplexPixels_1( image, _GD1, _TImage::ImageDimension )
67 cpPlugins_Demangle_Image_ColorPixels_1( image, _GD1, _TImage::ImageDimension )
68 cpPlugins_Demangle_Image_VectorPixels_1( image, _GD1, _TImage::ImageDimension )
69 this->_Error( "Invalid input image pixel type." );
72 // -------------------------------------------------------------------------
73 template< class _TImage >
74 void cpPluginsITKIO::ImageWriter::
75 _GD1( _TImage* image )
77 typedef itk::ImageFileWriter< _TImage > _TFilter;
79 auto f = this->_CreateITK< _TFilter >( );
80 f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
86 catch( itk::ExceptionObject& err )
88 this->_Error( err.GetDescription( ) );