X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FcpPluginsIO%2FImageReader.cxx;h=e10d3836d79d2f3cf171faf80f7c3b839d3fccd6;hb=e2fb8817731f6231d34941a208e46b36dad425b2;hp=f614a63807404b89483f1370aae723ca4599cb8e;hpb=d77223f66c6b35b3f29a648f8136bc513d4563dd;p=cpPlugins.git diff --git a/plugins/cpPluginsIO/ImageReader.cxx b/plugins/cpPluginsIO/ImageReader.cxx index f614a63..e10d383 100644 --- a/plugins/cpPluginsIO/ImageReader.cxx +++ b/plugins/cpPluginsIO/ImageReader.cxx @@ -1,6 +1,7 @@ #include #include -#include +#include +#include // ------------------------------------------------------------------------- cpPluginsIO::ImageReader:: @@ -23,12 +24,11 @@ cpPluginsIO::ImageReader:: } // ------------------------------------------------------------------------- -std::string cpPluginsIO::ImageReader:: +void cpPluginsIO::ImageReader:: _GenerateData( ) { // Get filenames auto fnames = this->m_Parameters.GetOpenFileNameList( "FileNames" ); - std::string r = ""; if( fnames.size( ) >= 1 ) { // Guess image properties @@ -46,30 +46,30 @@ _GenerateData( ) switch( io->GetNumberOfDimensions( ) ) { // TODO: case 1: r = this->_GD0< 1 >( io ); break; - case 2: r = this->_GD0< 2 >( io ); break; - case 3: r = this->_GD0< 3 >( io ); break; + case 2: this->_GD0< 2 >( io ); break; + case 3: this->_GD0< 3 >( io ); break; // TODO: case 4: r = this->_GD0< 4 >( io ); break; default: - r = "IO::ImageReader: Image dimension not supported."; + this->_Error( "Image dimension not supported." ); break; } // hctiws } // fi } else - r = - "IO::ImageReader: Could not CreateImageIO for \"" + + this->_Error( + std::string( "Could not create an ImageIO for \"" ) + fnames[ 0 ] + - "\""; + std::string( "\"" ) + ); } else - r = "IO::ImageReader: No image(s) given"; - return( r ); + this->_Error( "No image(s) given" ); } // ------------------------------------------------------------------------- template< unsigned int _Dim > -std::string cpPluginsIO::ImageReader:: +void cpPluginsIO::ImageReader:: _GD0( itk::ImageIOBase* io ) { typedef unsigned char uchar; @@ -80,73 +80,64 @@ _GD0( itk::ImageIOBase* io ) itk::ImageIOBase::IOComponentType ct = io->GetComponentType( ); itk::ImageIOBase::IOPixelType pt = io->GetPixelType( ); - std::string r = ""; if( pt == itk::ImageIOBase::SCALAR ) { switch( ct ) { - case itk::ImageIOBase::CHAR : r = this->_GD1< char, _Dim >( io ); break; - case itk::ImageIOBase::SHORT : r = this->_GD1< short, _Dim >( io ); break; - case itk::ImageIOBase::INT : r = this->_GD1< int, _Dim >( io ); break; - case itk::ImageIOBase::LONG : r = this->_GD1< long, _Dim >( io ); break; - case itk::ImageIOBase::FLOAT : r = this->_GD1< float, _Dim >( io ); break; - case itk::ImageIOBase::DOUBLE : r = this->_GD1< double, _Dim >( io ); break; - case itk::ImageIOBase::UCHAR : r = this->_GD1< uchar, _Dim >( io ); break; - case itk::ImageIOBase::USHORT : r = this->_GD1< ushort, _Dim >( io ); break; - case itk::ImageIOBase::UINT : r = this->_GD1< uint, _Dim >( io ); break; - case itk::ImageIOBase::ULONG : r = this->_GD1< ulong, _Dim >( io ); break; - default: - r = "IO::ImageReader: Scalar pixel type not supported."; - break; + case itk::ImageIOBase::CHAR : this->_GD1< char, _Dim >( io ); break; + case itk::ImageIOBase::SHORT : this->_GD1< short, _Dim >( io ); break; + case itk::ImageIOBase::INT : this->_GD1< int, _Dim >( io ); break; + case itk::ImageIOBase::LONG : this->_GD1< long, _Dim >( io ); break; + case itk::ImageIOBase::FLOAT : this->_GD1< float, _Dim >( io ); break; + case itk::ImageIOBase::DOUBLE : this->_GD1< double, _Dim >( io ); break; + case itk::ImageIOBase::UCHAR : this->_GD1< uchar, _Dim >( io ); break; + case itk::ImageIOBase::USHORT : this->_GD1< ushort, _Dim >( io ); break; + case itk::ImageIOBase::UINT : this->_GD1< uint, _Dim >( io ); break; + case itk::ImageIOBase::ULONG : this->_GD1< ulong, _Dim >( io ); break; + default: this->_Error( "Scalar pixel type not supported." ); break; } // hctiws } else if( pt == itk::ImageIOBase::RGB ) { switch( ct ) { - case itk::ImageIOBase::CHAR : r = this->_GD1< itk::RGBPixel< char >, _Dim >( io ); break; - case itk::ImageIOBase::SHORT : r = this->_GD1< itk::RGBPixel< short >, _Dim >( io ); break; - case itk::ImageIOBase::INT : r = this->_GD1< itk::RGBPixel< int >, _Dim >( io ); break; - case itk::ImageIOBase::LONG : r = this->_GD1< itk::RGBPixel< long >, _Dim >( io ); break; - case itk::ImageIOBase::FLOAT : r = this->_GD1< itk::RGBPixel< float >, _Dim >( io ); break; - case itk::ImageIOBase::DOUBLE : r = this->_GD1< itk::RGBPixel< double >, _Dim >( io ); break; - case itk::ImageIOBase::UCHAR : r = this->_GD1< itk::RGBPixel< uchar >, _Dim >( io ); break; - case itk::ImageIOBase::USHORT : r = this->_GD1< itk::RGBPixel< ushort >, _Dim >( io ); break; - case itk::ImageIOBase::UINT : r = this->_GD1< itk::RGBPixel< uint >, _Dim >( io ); break; - case itk::ImageIOBase::ULONG : r = this->_GD1< itk::RGBPixel< ulong >, _Dim >( io ); break; - default: - r = "IO::ImageReader: RGB pixel type not supported."; - break; + case itk::ImageIOBase::CHAR : this->_GD1< itk::RGBPixel< char >, _Dim >( io ); break; + case itk::ImageIOBase::SHORT : this->_GD1< itk::RGBPixel< short >, _Dim >( io ); break; + case itk::ImageIOBase::INT : this->_GD1< itk::RGBPixel< int >, _Dim >( io ); break; + case itk::ImageIOBase::LONG : this->_GD1< itk::RGBPixel< long >, _Dim >( io ); break; + case itk::ImageIOBase::FLOAT : this->_GD1< itk::RGBPixel< float >, _Dim >( io ); break; + case itk::ImageIOBase::DOUBLE : this->_GD1< itk::RGBPixel< double >, _Dim >( io ); break; + case itk::ImageIOBase::UCHAR : this->_GD1< itk::RGBPixel< uchar >, _Dim >( io ); break; + case itk::ImageIOBase::USHORT : this->_GD1< itk::RGBPixel< ushort >, _Dim >( io ); break; + case itk::ImageIOBase::UINT : this->_GD1< itk::RGBPixel< uint >, _Dim >( io ); break; + case itk::ImageIOBase::ULONG : this->_GD1< itk::RGBPixel< ulong >, _Dim >( io ); break; + default: this->_Error( "RGB pixel type not supported." ); break; } // hctiws } else if( pt == itk::ImageIOBase::RGBA ) { switch( ct ) { - case itk::ImageIOBase::CHAR : r = this->_GD1< itk::RGBAPixel< char >, _Dim >( io ); break; - case itk::ImageIOBase::SHORT : r = this->_GD1< itk::RGBAPixel< short >, _Dim >( io ); break; - case itk::ImageIOBase::INT : r = this->_GD1< itk::RGBAPixel< int >, _Dim >( io ); break; - case itk::ImageIOBase::LONG : r = this->_GD1< itk::RGBAPixel< long >, _Dim >( io ); break; - case itk::ImageIOBase::FLOAT : r = this->_GD1< itk::RGBAPixel< float >, _Dim >( io ); break; - case itk::ImageIOBase::DOUBLE : r = this->_GD1< itk::RGBAPixel< double >, _Dim >( io ); break; - case itk::ImageIOBase::UCHAR : r = this->_GD1< itk::RGBAPixel< uchar >, _Dim >( io ); break; - case itk::ImageIOBase::USHORT : r = this->_GD1< itk::RGBAPixel< ushort >, _Dim >( io ); break; - case itk::ImageIOBase::UINT : r = this->_GD1< itk::RGBAPixel< uint >, _Dim >( io ); break; - case itk::ImageIOBase::ULONG : r = this->_GD1< itk::RGBAPixel< ulong >, _Dim >( io ); break; - default: - r = "IO::ImageReader: RGBA pixel type not supported."; - break; + case itk::ImageIOBase::CHAR : this->_GD1< itk::RGBAPixel< char >, _Dim >( io ); break; + case itk::ImageIOBase::SHORT : this->_GD1< itk::RGBAPixel< short >, _Dim >( io ); break; + case itk::ImageIOBase::INT : this->_GD1< itk::RGBAPixel< int >, _Dim >( io ); break; + case itk::ImageIOBase::LONG : this->_GD1< itk::RGBAPixel< long >, _Dim >( io ); break; + case itk::ImageIOBase::FLOAT : this->_GD1< itk::RGBAPixel< float >, _Dim >( io ); break; + case itk::ImageIOBase::DOUBLE : this->_GD1< itk::RGBAPixel< double >, _Dim >( io ); break; + case itk::ImageIOBase::UCHAR : this->_GD1< itk::RGBAPixel< uchar >, _Dim >( io ); break; + case itk::ImageIOBase::USHORT : this->_GD1< itk::RGBAPixel< ushort >, _Dim >( io ); break; + case itk::ImageIOBase::UINT : this->_GD1< itk::RGBAPixel< uint >, _Dim >( io ); break; + case itk::ImageIOBase::ULONG : this->_GD1< itk::RGBAPixel< ulong >, _Dim >( io ); break; + default: this->_Error( "RGBA pixel type not supported." ); break; } // hctiws } else if( pt == itk::ImageIOBase::COMPLEX ) { switch( ct ) { - case itk::ImageIOBase::FLOAT : r = this->_GD1< std::complex< float >, _Dim >( io ); break; - case itk::ImageIOBase::DOUBLE : r = this->_GD1< std::complex< double >, _Dim >( io ); break; - default: - r = "IO::ImageReader: complex pixel type not supported."; - break; + case itk::ImageIOBase::FLOAT : this->_GD1< std::complex< float >, _Dim >( io ); break; + case itk::ImageIOBase::DOUBLE : this->_GD1< std::complex< double >, _Dim >( io ); break; + default: this->_Error( "Complex pixel type not supported." ); break; } // hctiws } /* TODO @@ -176,19 +167,17 @@ _GD0( itk::ImageIOBase* io ) } */ else - r = "IO::ImageReader: Image pixel type not yet supported."; - return( r ); + this->_Error( "Image pixel type not yet supported." ); } // ------------------------------------------------------------------------- template< class _TPixel, unsigned int _Dim > -std::string cpPluginsIO::ImageReader:: +void cpPluginsIO::ImageReader:: _GD1( itk::ImageIOBase* io ) { typedef itk::Image< _TPixel, _Dim > _TImage; // Get filenames - std::string r = ""; auto fnames = this->m_Parameters.GetOpenFileNameList( "FileNames" ); if( fnames.size( ) == 1 ) { @@ -202,7 +191,7 @@ _GD1( itk::ImageIOBase* io ) } catch( itk::ExceptionObject& err ) { - r = "IO::ImageReader: " + std::string( err.GetDescription( ) ); + this->_Error( err.GetDescription( ) ); } } else // if( fnames.size( ) > 1 ) @@ -218,11 +207,10 @@ _GD1( itk::ImageIOBase* io ) } catch( itk::ExceptionObject& err ) { - r = "IO::ImageReader: " + std::string( err.GetDescription( ) ); + this->_Error( err.GetDescription( ) ); } } // fi - return( r ); } // eof - $RCSfile$