X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=src%2FgdcmPixelReadConvert.cxx;h=ef4d814ec939e506c7457e400b65ccacddccdc1c;hb=0bbf3772212391cff69ed451c0a089279ee0c27c;hp=c51dc4fd89813471bd4c1257ff68ee474ba0eeb9;hpb=4c710fc192e0f68ca5e262ad03abcb08b7efecbd;p=gdcm.git diff --git a/src/gdcmPixelReadConvert.cxx b/src/gdcmPixelReadConvert.cxx index c51dc4fd..ef4d814e 100644 --- a/src/gdcmPixelReadConvert.cxx +++ b/src/gdcmPixelReadConvert.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmPixelReadConvert.cxx,v $ Language: C++ - Date: $Date: 2004/12/13 14:58:41 $ - Version: $Revision: 1.9 $ + Date: $Date: 2005/01/06 13:35:38 $ + Version: $Revision: 1.13 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -175,24 +175,24 @@ void PixelReadConvert::ReadAndDecompress12BitsTo16Bits( std::ifstream* fp ) */ bool PixelReadConvert::DecompressRLE16BitsFromRLE8Bits( int NumberOfFrames ) { - size_t PixelNumber = XSize * YSize; - size_t RawSize = XSize * YSize * NumberOfFrames; + size_t pixelNumber = XSize * YSize; + size_t rawSize = XSize * YSize * NumberOfFrames; // We assumed Raw contains the decoded RLE pixels but as // 8 bits per pixel. In order to convert those pixels to 16 bits // per pixel we cannot work in place within Raw and hence // we copy it in a safe place, say copyRaw. - uint8_t* copyRaw = new uint8_t[ RawSize * 2 ]; - memmove( copyRaw, Raw, RawSize * 2 ); + uint8_t* copyRaw = new uint8_t[ rawSize * 2 ]; + memmove( copyRaw, Raw, rawSize * 2 ); uint8_t* x = Raw; uint8_t* a = copyRaw; - uint8_t* b = a + PixelNumber; + uint8_t* b = a + pixelNumber; for ( int i = 0; i < NumberOfFrames; i++ ) { - for ( unsigned int j = 0; j < PixelNumber; j++ ) + for ( unsigned int j = 0; j < pixelNumber; j++ ) { *(x++) = *(b++); *(x++) = *(a++); @@ -501,7 +501,6 @@ ReadAndDecompressJPEGSingleFrameFragmentsFromFile( std::ifstream* fp ) JOCTET *buffer = new JOCTET [totalLength]; JOCTET *p = buffer; - uint8_t* localRaw = Raw; // Loop on the fragment[s] for( it = JPEGInfo->Fragments.begin(); it != JPEGInfo->Fragments.end(); @@ -515,7 +514,6 @@ ReadAndDecompressJPEGSingleFrameFragmentsFromFile( std::ifstream* fp ) size_t howManyRead = 0; size_t howManyWritten = 0; - size_t fragmentLength = 0; if ( BitsStored == 8) { @@ -583,8 +581,8 @@ ReadAndDecompressJPEGFragmentedFramesFromFile( std::ifstream* fp ) { // Loop on the fragment[s] to get total length size_t totalLength = 0; - for( JPEGFragmentsInfo::JPEGFragmentsList::iterator - it = JPEGInfo->Fragments.begin(); + JPEGFragmentsInfo::JPEGFragmentsList::iterator it; + for( it = JPEGInfo->Fragments.begin(); it != JPEGInfo->Fragments.end(); ++it ) { @@ -595,10 +593,8 @@ ReadAndDecompressJPEGFragmentedFramesFromFile( std::ifstream* fp ) JOCTET *buffer = new JOCTET [totalLength]; JOCTET *p = buffer; - uint8_t* localRaw = Raw; // Loop on the fragment[s] - for( JPEGFragmentsInfo::JPEGFragmentsList::iterator - it = JPEGInfo->Fragments.begin(); + for( it = JPEGInfo->Fragments.begin(); it != JPEGInfo->Fragments.end(); ++it ) { @@ -612,8 +608,7 @@ ReadAndDecompressJPEGFragmentedFramesFromFile( std::ifstream* fp ) size_t howManyWritten = 0; size_t fragmentLength = 0; - for( JPEGFragmentsInfo::JPEGFragmentsList::iterator - it = JPEGInfo->Fragments.begin() ; + for( it = JPEGInfo->Fragments.begin() ; (it != JPEGInfo->Fragments.end()) && (howManyRead < totalLength); ++it ) { @@ -697,7 +692,7 @@ bool PixelReadConvert::ReadAndDecompressJPEGFile( std::ifstream* fp ) // read from it return ReadAndDecompressJPEGSingleFrameFragmentsFromFile( fp ); } - else if (JPEGInfo->Fragments.size() == ZSize) + else if (JPEGInfo->Fragments.size() == (size_t)ZSize) { // suppose each fragment is a frame return ReadAndDecompressJPEGFramesFromFile( fp ); @@ -1086,7 +1081,6 @@ void PixelReadConvert::GrabInformationsFromHeader( Header* header ) if ( HasLUT ) { // Just in case some access to a Header element requires disk access. - // Note: gdcmDocument::Fp is leaved open after OpenFile. LutRedDescriptor = header->GetEntryByNumber( 0x0028, 0x1101 ); LutGreenDescriptor = header->GetEntryByNumber( 0x0028, 0x1102 ); LutBlueDescriptor = header->GetEntryByNumber( 0x0028, 0x1103 ); @@ -1308,6 +1302,15 @@ bool PixelReadConvert::BuildRGBImage() return true; } +/** + * \brief Print self. + * @param os Stream to print to. + */ +void PixelReadConvert::Print( std::ostream &os ) +{ + Print("",os); +} + /** * \brief Print self. * @param indent Indentation string to be prepended during printing. @@ -1320,10 +1323,10 @@ void PixelReadConvert::Print( std::string indent, std::ostream &os ) << std::endl; os << indent << "Pixel Data: offset " << PixelOffset - << " x" << std::hex << PixelOffset << std::dec - << " length " << PixelDataLength - << " x" << std::hex << PixelDataLength << std::dec - << std::endl; + << " x(" << std::hex << PixelOffset << std::dec + << ") length " << PixelDataLength + << " x(" << std::hex << PixelDataLength << std::dec + << ")" << std::endl; if ( IsRLELossless ) {