X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmPixelReadConvert.cxx;h=4762980bfec4f9c847ba73116087da86f54556a1;hb=ef0e08814ac95a5412e8650112e23add221767d1;hp=d505d2832075f5a5d728f619fac682b98c37d7b3;hpb=01f81453d85764007a1784d692635e404c3fe43f;p=gdcm.git diff --git a/src/gdcmPixelReadConvert.cxx b/src/gdcmPixelReadConvert.cxx index d505d283..4762980b 100644 --- a/src/gdcmPixelReadConvert.cxx +++ b/src/gdcmPixelReadConvert.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmPixelReadConvert.cxx,v $ Language: C++ - Date: $Date: 2006/06/29 13:27:59 $ - Version: $Revision: 1.112 $ + Date: $Date: 2007/07/25 10:35:20 $ + Version: $Revision: 1.116 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -32,7 +32,7 @@ #include // for memset #endif -namespace gdcm +namespace GDCM_NAME_SPACE { //bool ReadMPEGFile (std::ifstream *fp, char *inputdata, size_t lenght); @@ -98,6 +98,10 @@ void PixelReadConvert::GrabInformationsFromFile( File *file, BitsAllocated = 16; } + else if (BitsAllocated > 8 && BitsAllocated < 16 && BitsAllocated != 12) + { + BitsAllocated = 16; + } // Number of "Bits Stored", defaulted to number of "Bits Allocated" // when absent from the file. BitsStored = file->GetBitsStored(); @@ -166,7 +170,7 @@ void PixelReadConvert::GrabInformationsFromFile( File *file, if( IsJPEG2000 = Global::GetTS()->IsJPEG2000(ts) ) break; if( IsMPEG = Global::GetTS()->IsMPEG(ts) ) break; if( IsJPEGLS = Global::GetTS()->IsJPEGLS(ts) ) break; - // DeflatedExplicitVRLittleEndian is considered as 'Unexpected' (we don't know yet haow to process !) + // DeflatedExplicitVRLittleEndian is considered as 'Unexpected' (we don't know yet how to process !) gdcmWarningMacro("Unexpected Transfer Syntax :[" << ts << "]"); break; } @@ -272,7 +276,8 @@ bool PixelReadConvert::ReadAndDecompressPixelData( std::ifstream *fp ) unsigned int count = 0; unsigned int frameSize; unsigned int bitsAllocated = BitsAllocated; - if(bitsAllocated == 12) + //if(bitsAllocated == 12) + if(bitsAllocated > 8 && bitsAllocated < 16) bitsAllocated = 16; frameSize = XSize*YSize*SamplesPerPixel*bitsAllocated/8; @@ -1346,7 +1351,10 @@ void PixelReadConvert::ComputeRawAndRGBSizes() else { RGBSize = RawSize; + } + RawSize += RawSize%2; + RGBSize += RGBSize%2; } /// Allocates room for RGB Pixels