Program: gdcm
Module: $RCSfile: gdcmPixelConvert.cxx,v $
Language: C++
- Date: $Date: 2004/11/24 10:23:47 $
- Version: $Revision: 1.32 $
+ Date: $Date: 2004/11/25 10:24:34 $
+ Version: $Revision: 1.33 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
bool PixelConvert::ReadAndDecompressPixelData( std::ifstream* fp )
{
- ComputeDecompressedAndRGBSizes();
- AllocateDecompressed();
+ // ComputeDecompressedAndRGBSizes is already made by
+ // ::GrabInformationsFromHeader. So, the structure sizes are
+ // correct
+ Squeeze();
+
//////////////////////////////////////////////////
//// First stage: get our hands on the Pixel Data.
if ( !fp )
return false;
}
+ AllocateDecompressed();
+
//////////////////////////////////////////////////
//// Second stage: read from disk dans decompress.
if ( BitsAllocated == 12 )
{
RGBSize = 3 * DecompressedSize;
}
-
+ else
+ {
+ RGBSize = DecompressedSize;
+ }
}
void PixelConvert::GrabInformationsFromHeader( Header* header )
{
dbg.Verbose(0, "PixelConvert::GrabInformationsFromHeader: "
"unable to read red LUT data" );
- return;
}
}
{
dbg.Verbose(0, "PixelConvert::GrabInformationsFromHeader: "
"unable to read green LUT data" );
- return;
}
}
{
dbg.Verbose(0, "PixelConvert::GrabInformationsFromHeader: "
"unable to read blue LUT data" );
- return;
}
}
}
- if(fp) header->CloseFile();
+ ComputeDecompressedAndRGBSizes();
+
+ if(fp)
+ {
+ header->CloseFile();
+ }
}
/**