[Dcmlib] Big Endian suite

Mathieu Malaterre mathieu.malaterre at kitware.com
Tue Jan 11 22:32:35 CET 2005


Mathieu Malaterre wrote:
> Ok la test suite gdcm passe bien car on lie et reecrie que via gdcm... 
> ca permet juste de verifier qu'on est consistant.
> 
> Par ex l'image:
> 
> gdcmData/012345.002.050.dcm
> 
> n'est pas lu correctement l'endianness est fausse (inverse).

Le morceau de code coupable c'est:

  if( BitsAllocated == 16 )
    {
       uint16_t *im16 = (uint16_t*)Raw;
       switch( SwapCode )
       {
          case 0:
          case 12:
          case 1234:
             break;
          case 21:
          case 3412:
          case 2143:
          case 4321:
             for( i = 0; i < RawSize / 2; i++ )
             {
                im16[i]= (im16[i] >> 8) | (im16[i] << 8 );
             }
             break;
          default:
             gdcmVerboseMacro("SwapCode value (16 bits) not allowed.");
       }
    }

Je comprends a ce machin. C'est quoi '12' , c'est quoi 21 ?
En tout cas pour l'image 012345.002.050.dcm, gdcm me renvoi que le 
SwapCode est 4321, mais lors de la conversion de l'image j'ai du 
commenter le swap des pixels...

Quelqu'un pour m'expliquer ?

Merci
Mathieu





More information about the Dcmlib mailing list