X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FIO%2FImageWriter.cxx;h=c5aa3df9b1ccfc427d59a7ad0235c08388fed2fe;hb=9b11582dc5062474361432e46838c4e790c21f10;hp=ac61cb94936cd6964808ed65ea59e09b4bbbedc7;hpb=c26e1b67af96bd1b11e8da2ab9145dbaf0140deb;p=cpPlugins.git diff --git a/plugins/IO/ImageWriter.cxx b/plugins/IO/ImageWriter.cxx index ac61cb9..c5aa3df 100644 --- a/plugins/IO/ImageWriter.cxx +++ b/plugins/IO/ImageWriter.cxx @@ -1,78 +1,13 @@ -#include -#include +#include #include +#include +#include +#include #include -#include - #ifdef cpPlugins_QT4 - -#include -#include - -// ------------------------------------------------------------------------- -cpPluginsIO::ImageWriterQDialog:: -ImageWriterQDialog( QWidget* parent ) - : QFileDialog( parent ), - m_ProcessObject( NULL ) -{ - this->connect( - this, SIGNAL( accepted( ) ), this, SLOT( _dlg_Accepted( ) ) - ); - this->setWindowTitle( "Save an image" ); -} - -// ------------------------------------------------------------------------- -cpPluginsIO::ImageWriterQDialog:: -~ImageWriterQDialog( ) -{ -} - -// ------------------------------------------------------------------------- -void cpPluginsIO::ImageWriterQDialog:: -setProcessObject( cpPlugins::BaseObjects::ProcessObject* obj ) -{ - if( obj == NULL ) - return; - this->m_ProcessObject = obj; - auto parameters = this->m_ProcessObject->GetParameters( ); - auto extensions = parameters->GetAcceptedFileExtensions( "FileName" ); - auto filename = parameters->GetSaveFileName( "FileName" ); - - QStringList filters; - if( extensions != "" ) - filters << extensions.c_str( ); - filters << "Any file (*)"; - this->setFileMode( QFileDialog::AnyFile ); - this->setNameFilters( filters ); - this->setAcceptMode( QFileDialog::AcceptSave ); - if( filename != "" ) - { - QFileInfo info( filename.c_str( ) ); - if( info.exists( ) ) - this->setDirectory( info.canonicalPath( ) ); - else - this->setDirectory( "." ); - } - else - this->setDirectory( "." ); -} - -// ------------------------------------------------------------------------- -void cpPluginsIO::ImageWriterQDialog:: -_dlg_Accepted( ) -{ - if( this->m_ProcessObject != NULL ) - { - auto param = this->m_ProcessObject->GetParameters( ); - auto files = this->selectedFiles( ); - if( files.size( ) > 0 ) - param->SetSaveFileName( "FileName", files.begin( )->toStdString( ) ); - - } // fi -} - +# include #endif // cpPlugins_QT4 // ------------------------------------------------------------------------- @@ -80,11 +15,11 @@ QDialog* cpPluginsIO::ImageWriter:: CreateQDialog( ) { #ifdef cpPlugins_QT4 - ImageWriterQDialog* dlg = NULL; + cpPlugins::QT::SaveFileDialog* dlg = NULL; if( QApplication::instance( ) != NULL ) { - dlg = new ImageWriterQDialog( ); - dlg->setProcessObject( this ); + dlg = new cpPlugins::QT::SaveFileDialog( ); + dlg->SetParameters( &( this->m_Parameters ), "FileName" ); } // fi return( dlg ); @@ -100,7 +35,7 @@ ImageWriter( ) { this->_ConfigureInput< cpPlugins::DataObjects::Image >( "Input", true, false ); this->m_Parameters.Clear( ); - this->m_Parameters.ConfigureAsSaveFileName( "FileName" ); + this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" ); this->m_Parameters.SetAcceptedFileExtensions( "FileName", "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)" @@ -118,14 +53,27 @@ void cpPluginsIO::ImageWriter:: _GenerateData( ) { auto o = this->GetInputData( "Input" ); - cpPlugins_Demangle_ImageScalars_Dims( o, _GD0 ); - else this->_Error( "Invalid input image." ); + cpPlugins_Demangle_Image_ProcessDims_1( o, _GD0 ) + cpPlugins_Demangle_Image_DiffTensors3D_1( o, _GD1 ) + this->_Error( "Invalid input image dimension." ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsIO::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 cpPluginsIO::ImageWriter:: +_GD1( _TImage* image ) { typedef itk::ImageFileWriter< _TImage > _TFilter;