[Dcmlib] Big Endian suite
Mathieu Malaterre
mathieu.malaterre at kitware.com
Tue Jan 11 23:36:54 CET 2005
>> 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 reitere ma question. Je ne comprends pas ce code. SwapCode designe le
SwapCode du fichier ou du processeur ? Car il y a deux choses a faire:
Si le fichier est little endian *ET* on est sur little endian alors il
n'y a rien a faire. Mais si on est sur machine Big endian et le fichier
est little endian alors oui il faut swapper...
J'ai un peu du mal a comprendre comment *une* seule variable SwapCode
peut jouer le role de deux variables non correlees...
Merci
Mathieu
More information about the Dcmlib
mailing list