]> Creatis software - gdcm.git/blobdiff - src/gdcmPixelReadConvert.cxx
* src/gdcmDictEntry.h : now, the IsVRUnknown is correct
[gdcm.git] / src / gdcmPixelReadConvert.cxx
index c51dc4fd89813471bd4c1257ff68ee474ba0eeb9..ef4d814ec939e506c7457e400b65ccacddccdc1c 100644 (file)
@@ -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 )
    {