]> Creatis software - gdcm.git/commitdiff
BUG: Try real bytes swapping formula...
authormalaterre <malaterre>
Wed, 2 Feb 2005 18:13:57 +0000 (18:13 +0000)
committermalaterre <malaterre>
Wed, 2 Feb 2005 18:13:57 +0000 (18:13 +0000)
src/gdcmBinEntry.cxx
src/gdcmDocument.cxx
src/gdcmUtil.cxx

index 5707b614d59e8cf543a807a16c009bc887824340..85882a7ab2f6b27b24cadfcb60b174c17ec381e2 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmBinEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/02 17:47:56 $
-  Version:   $Revision: 1.63 $
+  Date:      $Date: 2005/02/02 18:13:57 $
+  Version:   $Revision: 1.64 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -103,7 +103,9 @@ void BinEntry::WriteContent(std::ofstream *fp, FileType filetype)
          {
             for (int i = 0; i < BUFFER_SIZE/2; i++)
             {
-               buffer[i] =  (binArea16[i] >> 8) | (binArea16[i] << 8);
+               //buffer[i] =  (binArea16[i] >> 8) | (binArea16[i] << 8);
+               uint16_t val = binArea16[i];
+               buffer[i] = ((( val << 8 ) & 0xff00 ) | (( val >> 8 ) & 0x00ff ) );
             }
             fp->write ( (char*)buffer, BUFFER_SIZE );
             binArea16 += BUFFER_SIZE/2;
index 8c0ddc3cc5c8195bf9d075e94958c3c7e51c2356..fe7bf473807b76ad49e0a26275c1eabe327a4aec 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/02 16:18:48 $
-  Version:   $Revision: 1.220 $
+  Date:      $Date: 2005/02/02 18:13:57 $
+  Version:   $Revision: 1.221 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -352,7 +352,7 @@ uint16_t Document::SwapShort(uint16_t a)
 {
    if ( SwapCode == 4321 || SwapCode == 2143 )
    {
-      a = ((( a << 8 ) & 0x0ff00 ) | (( a >> 8 ) & 0x00ff ) );
+      a = ((( a << 8 ) & 0xff00 ) | (( a >> 8 ) & 0x00ff ) );
    }
    return a;
 }
index 485a8a15bebdaec9a9a3b180cbb6a1b534482f47..8ff06805e1d29ddf98b94ff4ea847c0986bea01b 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmUtil.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/02 15:07:41 $
-  Version:   $Revision: 1.130 $
+  Date:      $Date: 2005/02/02 18:13:57 $
+  Version:   $Revision: 1.131 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -829,7 +829,7 @@ std::ostream &binary_write(std::ostream &os, const uint16_t &val)
 {
 #ifdef GDCM_WORDS_BIGENDIAN
    uint16_t swap;
-   swap = ((( val << 8 ) & 0x0ff00 ) | (( val >> 8 ) & 0x00ff ) );
+   swap = ((( val << 8 ) & 0xff00 ) | (( val >> 8 ) & 0x00ff ) );
    return os.write(reinterpret_cast<const char*>(&swap), 2);
 #else
    return os.write(reinterpret_cast<const char*>(&val), 2);