#include "ImageWriter.h" #include #include /* TODO #ifdef cpPlugins_Interface_QT4 #include #endif // cpPlugins_Interface_QT4 // ------------------------------------------------------------------------- cpPlugins::IO::ImageWriter:: DialogResult cpPlugins::IO::ImageWriter:: ExecConfigurationDialog( QWidget* parent ) { DialogResult r = Self::DialogResult_Cancel; #ifdef cpPlugins_Interface_QT4 std::string name = this->m_Parameters->GetString( "FileName" ); if( name == "" ) name = "save.mhd"; // Show dialog and check if it was accepted QString qname = QFileDialog::getSaveFileName( parent, QFileDialog::tr( "Save File" ), QFileDialog::tr( name.c_str( ) ), QFileDialog::tr( "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff);;Any file (*)") ); name = qname.toStdString( ); if( name != "" ) { this->m_Parameters->SetString( "FileName", name ); r = Self::DialogResult_NoModal; } // fi #endif // cpPlugins_Interface_QT4 return( r ); } */ // ------------------------------------------------------------------------- cpPlugins::IO::ImageWriter:: ImageWriter( ) : Superclass( ) { this->_AddInput( "Input" ); this->m_Parameters->ConfigureAsFileName( "FileName" ); } // ------------------------------------------------------------------------- cpPlugins::IO::ImageWriter:: ~ImageWriter( ) { } // ------------------------------------------------------------------------- std::string cpPlugins::IO::ImageWriter:: _GenerateData( ) { // Thank you very much Microsoft !!! :-@ std::string r = this->_GD0_Image< 2 >( ); if( r != "" ) r = this->_GD0_Image< 3 >( ); if( r != "" ) r = this->_GD0_Image< 4 >( ); if( r != "" ) r = this->_GD0_VectorImage< 2 >( ); if( r != "" ) r = this->_GD0_VectorImage< 3 >( ); if( r != "" ) r = this->_GD0_VectorImage< 4 >( ); return( r ); } // ------------------------------------------------------------------------- template< unsigned int D > std::string cpPlugins::IO::ImageWriter:: _GD0_Image( ) { cpPlugins::Interface::Image* image = this->GetInput< cpPlugins::Interface::Image >( "Input" ); if( image == NULL ) return( "ImageWriter: No input image." ); itk::DataObject* itk_image = NULL; std::string r = ""; cpPlugins_Image_Demangle_AllTypes( D, image, itk_image, r, _RealGD ); else r = "ImageWriter: Input image type not supported."; return( r ); } // ------------------------------------------------------------------------- template< unsigned int D > std::string cpPlugins::IO::ImageWriter:: _GD0_VectorImage( ) { cpPlugins::Interface::Image* image = this->GetInput< cpPlugins::Interface::Image >( "Input" ); if( image == NULL ) return( "ImageWriter: No input image." ); itk::DataObject* itk_image = NULL; std::string r = ""; cpPlugins_VectorImage_Demangle_AllTypes( D, image, itk_image, r, _RealGD ); else r = "ImageWriter: Input image type not supported."; return( r ); } // ------------------------------------------------------------------------- template< class I > std::string cpPlugins::IO::ImageWriter:: _RealGD( itk::DataObject* image ) { // Get filename std::string fname = this->m_Parameters->GetFileName( "FileName" ); typedef itk::ImageFileWriter< I > _W; _W* writer = this->_CreateITK< _W >( ); writer->SetFileName( fname ); writer->SetInput( dynamic_cast< I* >( image ) ); try { writer->Update( ); } catch( itk::ExceptionObject& err ) { return( "ImageWriter: " + std::string( err.GetDescription( ) ) ); } // yrt return( "" ); } // eof - $RCSfile$