]> Creatis software - gdcm.git/blobdiff - src/gdcmFile.cxx
gdcm::Orientation uses RefCounter
[gdcm.git] / src / gdcmFile.cxx
index c8e0d9029a52d392d17de88395fbe562831634b1..891a03f862a77fc3b460574652a6912fcbc4f5ff 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/11/03 14:23:13 $
-  Version:   $Revision: 1.300 $
+  Date:      $Date: 2005/11/09 11:21:47 $
+  Version:   $Revision: 1.304 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -469,9 +469,13 @@ float File::GetXSpacing()
    {
       nbValue = entry->GetValueCount();
       // Can't use IsValueCountValid because of the complex heuristic.
+      if( nbValue !=2 )
+         gdcmWarningMacro("ImagerPixelSpacing (0x0018,0x1164) "
+         << "has a wrong number of values :" << nbValue);
+     
       if( nbValue >= 3 )
          xspacing = (float)entry->GetValue(2);
-      if( nbValue >= 2 )
+      else if( nbValue >= 2 )
          xspacing = (float)entry->GetValue(1);
       else
          xspacing = (float)entry->GetValue(0);
@@ -489,6 +493,10 @@ float File::GetXSpacing()
    if( entry )
    {
       nbValue = entry->GetValueCount();
+      if( nbValue !=2 )
+         gdcmWarningMacro("PixelSpacing (0x0018,0x0030) "
+          << "has a wrong number of values :" << nbValue);      
+      
       if( nbValue >= 3 )
          xspacing = (float)entry->GetValue(2);
       else if( nbValue >= 2 )
@@ -795,7 +803,7 @@ int File::GetBitsStored()
    DataEntry *entry = GetDataEntry(0x0028,0x0101);
    if( !entry )
    {
-      gdcmWarningMacro("(0028,0101) is supposed to be mandatory");
+      gdcmWarningMacro("BitsStored (0028,0101) is supposed to be mandatory");
       return 0;
    }
    return (int)entry->GetValue(0);
@@ -812,7 +820,7 @@ int File::GetBitsAllocated()
    DataEntry *entry = GetDataEntry(0x0028,0x0100);
    if( !entry )
    {
-      gdcmWarningMacro("(0028,0100) is supposed to be mandatory");
+      gdcmWarningMacro("BitsAllocated (0028,0100) is supposed to be mandatory");
       return 0;
    }
    return (int)entry->GetValue(0);
@@ -829,7 +837,7 @@ int File::GetHighBitPosition()
    DataEntry *entry = GetDataEntry(0x0028,0x0102);
    if( !entry )
    {
-      gdcmWarningMacro("(0028,0102) is supposed to be mandatory");
+      gdcmWarningMacro("HighBitPosition (0028,0102) is supposed to be mandatory");
       return 0;
    }
    return (int)entry->GetValue(0);
@@ -846,7 +854,7 @@ int File::GetSamplesPerPixel()
    DataEntry *entry = GetDataEntry(0x0028,0x0002);
    if( !entry )
    {
-      gdcmWarningMacro("(0028,0002) is supposed to be mandatory");
+      gdcmWarningMacro("SamplesPerPixel (0028,0002) is supposed to be mandatory");
       return 1; // Well, it's supposed to be mandatory ...
                 // but sometimes it's missing : *we* assume Gray pixels
    }
@@ -920,7 +928,7 @@ std::string File::GetPixelType()
    std::string bitsAlloc = GetEntryString(0x0028, 0x0100); // Bits Allocated
    if ( bitsAlloc == GDCM_UNFOUND )
    {
-      gdcmWarningMacro( "Missing  Bits Allocated (0028,0100)");
+      gdcmWarningMacro( "Bits Allocated (0028,0100) supposed to be mandatory");
       bitsAlloc = "16"; // default and arbitrary value, not to polute the output
    }
 
@@ -964,7 +972,8 @@ bool File::IsSignedPixelData()
    DataEntry *entry = GetDataEntry(0x0028, 0x0103);//"Pixel Representation"
    if( !entry )
    {
-      gdcmWarningMacro( "Missing Pixel Representation (0028,0103)");
+      gdcmWarningMacro( "Pixel Representation (0028,0103) supposed to be "
+                      << "mandatory");
       return false;
    }
    return entry->GetValue(0) != 0;
@@ -985,7 +994,8 @@ bool File::IsMonochrome()
    }
    if ( PhotometricInterp == GDCM_UNFOUND )
    {
-      gdcmWarningMacro( "Not found : Photometric Interpretation (0028,0004)");
+      gdcmWarningMacro( "Photometric Interpretation (0028,0004) supposed to be "
+                         << "mandatory");
    }
    return false;
 }
@@ -1004,7 +1014,8 @@ bool File::IsMonochrome1()
    }
    if ( PhotometricInterp == GDCM_UNFOUND )
    {
-      gdcmWarningMacro( "Not found : Photometric Interpretation (0028,0004)");
+      gdcmWarningMacro( "Photometric Interpretation (0028,0004) : supposed to"
+      << " be mandatory! ");
    }
    return false;
 }
@@ -1023,7 +1034,7 @@ bool File::IsPaletteColor()
    }
    if ( PhotometricInterp == GDCM_UNFOUND )
    {
-      gdcmWarningMacro( "Not found : Palette color (0028,0004)");
+      gdcmDebugMacro( "Not found : Palette color (0028,0004)");
    }
    return false;
 }
@@ -1042,7 +1053,7 @@ bool File::IsYBRFull()
    }
    if ( PhotometricInterp == GDCM_UNFOUND )
    {
-      gdcmWarningMacro( "Not found : YBR Full (0028,0004)");
+      gdcmDebugMacro( "Not found : YBR Full (0028,0004)");
    }
    return false;
 }
@@ -1153,7 +1164,7 @@ float File::GetRescaleSlope()
    DataEntry *entry = GetDataEntry(0x0028, 0x1053);
    if( !entry )
    {
-      gdcmWarningMacro( "Missing Rescale Slope (0028,1053)");
+      gdcmDebugMacro( "Missing Rescale Slope (0028,1053)");
       return 1.0f;
    }
    return (float)entry->GetValue(0);
@@ -1243,7 +1254,7 @@ size_t File::GetPixelOffset()
    }
    else
    {
-      gdcmDebugMacro( "Big trouble : Pixel Element ("
+      gdcmWarningMacro( "Big trouble : Pixel Element ("
                       << std::hex << GrPixel<<","<< NumPixel<< ") NOT found" );
       return 0;
    }
@@ -1265,7 +1276,7 @@ size_t File::GetPixelAreaLength()
    }
    else
    {
-      gdcmDebugMacro( "Big trouble : Pixel Element ("
+      gdcmWarningMacro( "Big trouble : Pixel Element ("
                       << std::hex << GrPixel<<","<< NumPixel<< ") NOT found" );
       return 0;
    }
@@ -1713,7 +1724,7 @@ bool File::ReadTag(uint16_t testGroup, uint16_t testElem)
    { 
        // in order not to pollute output we don't warn on 'delimitors'
       if (itemTagGroup != 0xfffe ||  testGroup != 0xfffe )
-         gdcmErrorMacro( "Wrong Item Tag found:"
+         gdcmWarningMacro( "Wrong Item Tag found:"
           << "   We should have found tag ("
           << DictEntry::TranslateToKey(testGroup,testElem) << ")" << std::endl
           << "   but instead we encountered tag ("
@@ -1793,9 +1804,9 @@ void File::ReadEncapsulatedBasicOffsetTable()
          uint32_t val = BasicOffsetTableItemValue[i];
          BasicOffsetTableItemValue[i] 
            = (  (val<<24)               | ((val<<8)  & 0x00ff0000) | 
-              ((val>>8)  & 0x0000ff00) |  (val>>24)               );
+              ( (val>>8)  & 0x0000ff00) |  (val>>24)               );
 #endif
-         gdcmWarningMacro( "Read one length for: " << 
+         gdcmDebugMacro( "Read one length for: " << 
                           std::hex << BasicOffsetTableItemValue[i] );
       }