+
+
+
+
+ // Just in case some access to a Header element requires disk access.
+ // Note: gdcmDocument::Fp is leaved open after OpenFile.
+ (void)HeaderInternal->OpenFile();
+ // Number of Bits Allocated for storing a Pixel is defaulted to 16
+ // when absent from the header.
+ int numberBitsAllocated = HeaderInternal->GetBitsAllocated();
+ if ( numberBitsAllocated == 0 )
+ {
+ numberBitsAllocated = 16;
+ }
+ PixelConverter.SetBitsAllocated( numberBitsAllocated );
+
+ // Number of "Bits Stored" defaulted to number of "Bits Allocated"
+ // when absent from the header.
+ int numberBitsStored = HeaderInternal->GetBitsStored();
+ if ( numberBitsStored == 0 )
+ {
+ numberBitsStored = numberBitsAllocated;
+ }
+ PixelConverter.SetBitsStored( numberBitsStored );
+
+ // High Bit Position
+ int highBitPosition = HeaderInternal->GetHighBitPosition();
+ if ( highBitPosition == 0 )
+ {
+ highBitPosition = numberBitsAllocated - 1;
+ }
+ PixelConverter.SetHighBitPosition( highBitPosition );
+
+
+ PixelConverter.SetXSize( HeaderInternal->GetXSize() );
+ PixelConverter.SetYSize( HeaderInternal->GetYSize() );
+ PixelConverter.SetZSize( HeaderInternal->GetZSize() );
+ PixelConverter.SetSamplesPerPixel( HeaderInternal->GetSamplesPerPixel() );
+ PixelConverter.SetPixelSize( HeaderInternal->GetPixelSize() );
+ PixelConverter.SetPixelSign( HeaderInternal->IsSignedPixelData() );
+ PixelConverter.SetSwapCode( HeaderInternal->GetSwapCode() );
+ PixelConverter.SetIsUncompressed(
+ ! HeaderInternal->IsDicomV3()
+ || HeaderInternal->IsImplicitVRLittleEndianTransferSyntax()
+ || HeaderInternal->IsExplicitVRLittleEndianTransferSyntax()
+ || HeaderInternal->IsExplicitVRBigEndianTransferSyntax()
+ || HeaderInternal->IsDeflatedExplicitVRLittleEndianTransferSyntax() );
+ PixelConverter.SetIsJPEG2000( HeaderInternal->IsJPEG2000() );
+ PixelConverter.SetIsJPEGLossless( HeaderInternal->IsJPEGLossless() );
+ PixelConverter.SetIsRLELossless(
+ HeaderInternal->IsRLELossLessTransferSyntax() );
+ PixelConverter.SetPixelOffset( HeaderInternal->GetPixelOffset() );
+ PixelConverter.SetPixelDataLength( HeaderInternal->GetPixelAreaLength() );
+ PixelConverter.SetRLEInfo( &(HeaderInternal->RLEInfo) );
+ PixelConverter.SetJPEGInfo( &(HeaderInternal->JPEGInfo) );
+ PixelConverter.SetHasLUT( HeaderInternal->HasLUT() );
+
+ PixelConverter.SetPlanarConfiguration(
+ HeaderInternal->GetPlanarConfiguration() );
+ PixelConverter.SetIsMonochrome( HeaderInternal->IsMonochrome() );
+ PixelConverter.SetIsPaletteColor( HeaderInternal->IsPaletteColor() );
+ PixelConverter.SetIsYBRFull( HeaderInternal->IsYBRFull() );
+
+ HeaderInternal->CloseFile();
+