[Dcmlib] Big Endian suite: images compressees

Mathieu Malaterre mathieu.malaterre at kitware.com
Wed Jan 12 18:18:52 CET 2005


>>  TransferSyntaxName= [JPEG Lossless, Non-Hierarchical, First-Order 
>> Prediction (Process 14 [Selection Value 1])]
>>  SwapCode= 4321
>> Je viens de faire un 'grep -ri endian' dans libjpeg et je trouve rien. 
>> Donc mon flux jpeg est lu correctement (le SwapCode gdcm est bon). 
>> Mais la decompression me donne une image codee en little endian...
> 
> 
> Un appel brutal a 'ConvertSwapZone()' devrait resoudre le bouzin, non?

Ben non justement le ConvertSwapZone me "re"swappait mon image.

dans gdcmJpeg.cxx:

// The ijg has no notion of big endian, therefore always swap the jpeg 
stream
#if defined(GDCM_WORDS_BIGENDIAN) && (CMAKE_BITS_IN_JSAMPLE != 8)
       uint16_t *buffer16 = (uint16_t*)*buffer;
       uint16_t *pimage16 = (uint16_t*)pimage;
       for(int i=0;i<rowsize/2;i++)
         pimage16[i] = (buffer16[i] >> 8) | (buffer16[i] << 8 );
#else
       memcpy( pimage, *buffer,rowsize);
#endif //GDCM_WORDS_BIGENDIAN


Mathieu... Sun / et Mac sont en train de me refaire un dashboard mais 
deja mon image qui me cassait les choses passe maintenant :))

Mathieu





More information about the Dcmlib mailing list