#include #include #include #define ITKIOImageBase_HIDDEN #include #include #ifdef cpPlugins_QT4 # include #endif // cpPlugins_QT4 // ------------------------------------------------------------------------- QDialog* cpPluginsITKIO::ImageWriter:: CreateQDialog( ) { #ifdef cpPlugins_QT4 cpPlugins::QT::SaveFileDialog* dlg = NULL; if( QApplication::instance( ) != NULL ) { dlg = new cpPlugins::QT::SaveFileDialog( ); dlg->SetParameters( &( this->m_Parameters ), "FileName" ); } // fi return( dlg ); #else // cpPlugins_QT4 return( NULL ); #endif // cpPlugins_QT4 } // ------------------------------------------------------------------------- cpPluginsITKIO::ImageWriter:: ImageWriter( ) : Superclass( ) { this->_ConfigureInput< cpInstances::Image >( "Input", true, false ); this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" ); this->m_Parameters.SetAcceptedFileExtensions( "FileName", "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)" ); } // ------------------------------------------------------------------------- cpPluginsITKIO::ImageWriter:: ~ImageWriter( ) { } // ------------------------------------------------------------------------- void cpPluginsITKIO::ImageWriter:: _GenerateData( ) { auto o = this->GetInputData( "Input" ); cpPlugins_Demangle_Image_ProcessDims_1( o, _GD0 ) cpPlugins_Demangle_Image_DiffTensors3D_1( o, _GD1 ) this->_Error( "Invalid input image dimension." ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsITKIO::ImageWriter:: _GD0( _TImage* image ) { cpPlugins_Demangle_Image_ScalarPixels_1( image, _GD1, _TImage::ImageDimension ) cpPlugins_Demangle_Image_ComplexPixels_1( image, _GD1, _TImage::ImageDimension ) cpPlugins_Demangle_Image_ColorPixels_1( image, _GD1, _TImage::ImageDimension ) cpPlugins_Demangle_Image_VectorPixels_1( image, _GD1, _TImage::ImageDimension ) this->_Error( "Invalid input image pixel type." ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsITKIO::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$