X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FrtkImagXImageIO.cxx;h=0d1b4d8e0bac56d2b75af37e09b1aded61d6ac87;hb=refs%2Fheads%2Fmaster;hp=d197ed7d122c9a702befd5b0fd33bac2cd14a8fc;hpb=fbd1f3ace65ab9540cb4e0b2d4af83b60232479e;p=clitk.git diff --git a/common/rtkImagXImageIO.cxx b/common/rtkImagXImageIO.cxx index d197ed7..0d1b4d8 100644 --- a/common/rtkImagXImageIO.cxx +++ b/common/rtkImagXImageIO.cxx @@ -57,7 +57,7 @@ void rtk::ImagXImageIO::ReadImageInformation() if(pixelType=="Type_float") SetComponentType(itk::ImageIOBase::FLOAT); - if(dic["dimensions"].GetPointer()==NULL) + if( dic["dimensions"].GetPointer() == NULL ) SetNumberOfDimensions(3); else SetNumberOfDimensions( ( dynamic_cast(dic["dimensions"].GetPointer() )->GetMetaDataObjectValue() ) ); @@ -73,15 +73,22 @@ void rtk::ImagXImageIO::ReadImageInformation() { SetDimensions(2, dynamic_cast(dic["z"].GetPointer() )->GetMetaDataObjectValue() ); SetSpacing(2, dynamic_cast(dic["spacing_z"].GetPointer() )->GetMetaDataObjectValue() ); + if(GetSpacing(2) == 0) + SetSpacing(2, 1); } - std::istringstream iss( - dynamic_cast(dic["matrixTransform"].GetPointer() )->GetMetaDataObjectValue() ); itk::Matrix matrix; - for(unsigned int j=0; j<4; j++) - for(unsigned int i=0; i<4; i++) - iss >> matrix[j][i]; - matrix /= matrix[3][3]; + if(dic["matrixTransform"].GetPointer() == NULL) + matrix.SetIdentity(); + else + { + std::istringstream iss( + dynamic_cast(dic["matrixTransform"].GetPointer() )->GetMetaDataObjectValue() ); + for(unsigned int j=0; j<4; j++) + for(unsigned int i=0; i<4; i++) + iss >> matrix[j][i]; + matrix /= matrix[3][3]; + } std::vector direction; for(unsigned int i=0; iGetComponentType() == 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 } } //-------------------------------------------------------------------- // Write Image Information -void rtk::ImagXImageIO::WriteImageInformation(bool keepOfStream) +void rtk::ImagXImageIO::WriteImageInformation( bool itkNotUsed(keepOfStream) ) { } //-------------------------------------------------------------------- // Write Image Information -bool rtk::ImagXImageIO::CanWriteFile(const char* FileNameToWrite) +bool rtk::ImagXImageIO::CanWriteFile( const char* itkNotUsed(FileNameToWrite) ) { return false; } //-------------------------------------------------------------------- // Write Image -void rtk::ImagXImageIO::Write(const void * buffer) +void rtk::ImagXImageIO::Write( const void * itkNotUsed(buffer) ) { } //// -