X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FrtkXRadImageIO.cxx;h=df2e8db20503edc2104a413212cdb161f3b7b457;hb=a9a144f59b821751d19a41bd7b8e5bc6d6ff7a01;hp=fb02952016ed37ce421de70ea8dd312694974167;hpb=96778a499d39f77c9cdaaa58632b9f79d587deed;p=clitk.git diff --git a/common/rtkXRadImageIO.cxx b/common/rtkXRadImageIO.cxx index fb02952..df2e8db 100644 --- a/common/rtkXRadImageIO.cxx +++ b/common/rtkXRadImageIO.cxx @@ -126,6 +126,7 @@ void rtk::XRadImageIO::Read(void * buffer) // Adapted from itkRawImageIO { +#if ( ITK_VERSION_MAJOR < 5 ) using namespace itk; // Swap bytes if necessary if itkReadRawBytesAfterSwappingMacro( unsigned short, USHORT ) @@ -134,10 +135,35 @@ void rtk::XRadImageIO::Read(void * buffer) else if itkReadRawBytesAfterSwappingMacro( unsigned char, UCHAR ) else if itkReadRawBytesAfterSwappingMacro( unsigned int, UINT ) else if itkReadRawBytesAfterSwappingMacro( int, INT ) - else if itkReadRawBytesAfterSwappingMacro( unsigned int, ULONG ) - else if itkReadRawBytesAfterSwappingMacro( int, LONG ) else if itkReadRawBytesAfterSwappingMacro( float, FLOAT ) else if itkReadRawBytesAfterSwappingMacro( double, DOUBLE ); +#else + #define itkReadRawBytesAfterSwappingMacro(StrongType, WeakType) \ + ( this->GetComponentType() == WeakType ) \ + { \ + using InternalByteSwapperType = itk::ByteSwapper; \ + if ( m_ByteOrder == LittleEndian ) \ + { \ + InternalByteSwapperType::SwapRangeFromSystemToLittleEndian( \ + (StrongType *)buffer, this->GetImageSizeInComponents() ); \ + } \ + else if ( m_ByteOrder == BigEndian ) \ + { \ + InternalByteSwapperType::SwapRangeFromSystemToBigEndian( \ + (StrongType *)buffer, this->GetImageSizeInComponents() ); \ + } \ + } + + // Swap bytes if necessary + if itkReadRawBytesAfterSwappingMacro( unsigned short, USHORT ) + else if itkReadRawBytesAfterSwappingMacro( short, SHORT ) + else if itkReadRawBytesAfterSwappingMacro( char, CHAR ) + else if itkReadRawBytesAfterSwappingMacro( unsigned char, UCHAR ) + else if itkReadRawBytesAfterSwappingMacro( unsigned int, UINT ) + else if itkReadRawBytesAfterSwappingMacro( int, INT ) + else if itkReadRawBytesAfterSwappingMacro( float, FLOAT ) + else if itkReadRawBytesAfterSwappingMacro( double, DOUBLE ); +#endif } }