]> Creatis software - gdcm.git/blobdiff - src/gdcmPixelReadConvert.cxx
* remove compilation warnings
[gdcm.git] / src / gdcmPixelReadConvert.cxx
index 1d59ff9a31c53ca78e8fb095f3b23e21899b0f8f..d3dfec5b671e7b81d405601c1fdff1fb8490829a 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmPixelReadConvert.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/15 18:12:35 $
-  Version:   $Revision: 1.50 $
+  Date:      $Date: 2005/02/23 09:54:59 $
+  Version:   $Revision: 1.53 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -644,8 +644,6 @@ void PixelReadConvert::ConvertReorderEndianity()
    }
 }
 
-
-
 /**
  * \brief Deal with Grey levels i.e. re-arange them
  *        to have low values = dark, high values = bright
@@ -655,41 +653,69 @@ void PixelReadConvert::ConvertFixGreyLevels()
    if (!IsMonochrome1)
       return;
 
-   int i; // to please M$VC6
-   if ( BitsAllocated == 8 )
+   uint32_t i; // to please M$VC6
+   int16_t j;
+
+   if (!PixelSign)
    {
-      uint8_t *deb = (uint8_t *)Raw;
-      for (i=0; i<RawSize; i++)      
+      if ( BitsAllocated == 8 )
       {
-         *deb = 255 - *deb;
-         deb++;
+         uint8_t *deb = (uint8_t *)Raw;
+         for (i=0; i<RawSize; i++)      
+         {
+            *deb = 255 - *deb;
+            deb++;
+         }
+         return;
       }
-      return;
-   }
 
-   if ( BitsAllocated == 16 )
+      if ( BitsAllocated == 16 )
+      {
+         uint16_t mask =1;
+         for (j=0; j<BitsStored-1; j++)
+         {
+            mask = (mask << 1) +1; // will be fff when BitsStored=12
+         }
+
+         uint16_t *deb = (uint16_t *)Raw;
+         for (i=0; i<RawSize/2; i++)      
+         {
+            *deb = mask - *deb;
+            deb++;
+         }
+         return;
+       }
+   }
+   else
    {
-      uint16_t mask =1;
-      int bitStored = 12;   
-      for (i=0; i<BitsStored-1; i++)
+      if ( BitsAllocated == 8 )
       {
-         mask = (mask << 1) +1; // will be fff when BitStored=12
+         uint8_t smask8 = 255;
+         uint8_t *deb = (uint8_t *)Raw;
+         for (i=0; i<RawSize; i++)      
+         {
+            *deb = smask8 - *deb;
+            deb++;
+         }
+         return;
       }
-
-      uint16_t *deb = (uint16_t *)Raw;
-      for (i=0; i<RawSize/2; i++)      
+      if ( BitsAllocated == 16 )
       {
-         *deb = mask - *deb;
-         deb++;
+         uint16_t smask16 = 65535;
+         uint16_t *deb = (uint16_t *)Raw;
+         for (i=0; i<RawSize/2; i++)      
+         {
+            *deb = smask16 - *deb;
+            deb++;
+         }
+         return;
       }
-      return;
    }
 }
 
-
 /**
  * \brief  Re-arrange the bits within the bytes.
- * @return Boolean
+ * @return Boolean always true
  */
 bool PixelReadConvert::ConvertReArrangeBits() throw ( FormatError )
 {