X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FrtkImagXImageIO.cxx;h=0d1b4d8e0bac56d2b75af37e09b1aded61d6ac87;hb=a9a144f59b821751d19a41bd7b8e5bc6d6ff7a01;hp=09cb910558dc9e9eabedfb81be6c23b0bee42bef;hpb=49169efa175f39cb8052cea08186c032835bb2f2;p=clitk.git diff --git a/common/rtkImagXImageIO.cxx b/common/rtkImagXImageIO.cxx index 09cb910..0d1b4d8 100644 --- a/common/rtkImagXImageIO.cxx +++ b/common/rtkImagXImageIO.cxx @@ -163,6 +163,7 @@ void rtk::ImagXImageIO::Read(void * buffer) // Adapted from itkRawImageIO { +#if ( ITK_VERSION_MAJOR < 5 ) using namespace itk; // Swap bytes if necessary if itkReadRawBytesAfterSwappingMacro( unsigned short, USHORT ) @@ -171,10 +172,35 @@ void rtk::ImagXImageIO::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 } }