X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=plugins%2FIO%2FImageWriter.cxx;h=c5aa3df9b1ccfc427d59a7ad0235c08388fed2fe;hb=560b80db4e0253bef4a1b7ff3afb63fd04591551;hp=a8b30b4321cc78f504d8a4a67627d12cf2b17587;hpb=201c5026430f9bcc33f9db6a39f5d03db096c860;p=cpPlugins.git diff --git a/plugins/IO/ImageWriter.cxx b/plugins/IO/ImageWriter.cxx index a8b30b4..c5aa3df 100644 --- a/plugins/IO/ImageWriter.cxx +++ b/plugins/IO/ImageWriter.cxx @@ -1,75 +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::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 +#ifdef cpPlugins_QT4 +# include #endif // cpPlugins_QT4 // ------------------------------------------------------------------------- @@ -77,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 ); @@ -95,9 +33,9 @@ cpPluginsIO::ImageWriter:: ImageWriter( ) : Superclass( ) { - this->_AddInput( "Input" ); + 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)" @@ -114,13 +52,10 @@ cpPluginsIO::ImageWriter:: void cpPluginsIO::ImageWriter:: _GenerateData( ) { - auto image = this->GetInputData( "Input" ); - cpPlugins_Image_Demangle_Dim( _GD0, image, 1 ); - else cpPlugins_Image_Demangle_Dim( _GD0, image, 2 ); - else cpPlugins_Image_Demangle_Dim( _GD0, image, 3 ); - else cpPlugins_Image_Demangle_Dim( _GD0, image, 4 ); - else - this->_Error( "Invalid input itk::ImageBase" ); + 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." ); } // ------------------------------------------------------------------------- @@ -128,12 +63,11 @@ template< class _TImage > void cpPluginsIO::ImageWriter:: _GD0( _TImage* image ) { - static const unsigned int D = _TImage::ImageDimension; - cpPlugins_Image_Demangle_Pixel_AllScalars ( _GD1, image, D ); - else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGB, D ); - else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGBA, D ); - else - this->_Error( "Invalid pixel type" ); + 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." ); } // ------------------------------------------------------------------------- @@ -142,6 +76,7 @@ void cpPluginsIO::ImageWriter:: _GD1( _TImage* image ) { typedef itk::ImageFileWriter< _TImage > _TFilter; + auto f = this->_CreateITK< _TFilter >( ); f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) ); f->SetInput( image );