[Dcmlib] Big Endian suite: comprends toujours pas
Mathieu Malaterre
mathieu.malaterre at kitware.com
Wed Jan 12 17:36:22 CET 2005
Ok je pense que je viens de comprendre -enfin-. L'image en question est
compressee !!! Ce qui n'etait pas arrivee avant dans libido ?
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...
Mathieu
jean-michel.rouet at philips.com wrote:
>
> peut etre pour clarifier les choses:
>
> prend ce petit programme:
>
> #include <stdio.h>
>
> int main(int argc, char *argv[])
> {
> int value = 0x04030201; /* 1 2*256 3*256*256 4*256*256*256 */
> char *bytes = (char *)(&value);
> short *shorts = (short *)(&value);
> printf ("%08x is converted to ", value);
> printf ("%02x%02x%02x%02x\n", bytes[3], bytes[2], bytes[1], bytes[0]);
> printf ("%08x is converted to ", value);
> printf ("%04x%04x\n", shorts[1], shorts[0]);
> }
>
>
> execute sur I386:
> tu obtiens:
> rouet at joebar /tmp>./test.exe
> 04030201 is converted to 04030201
> 04030201 is converted to 04030201
>
> tu vois que l'ordre est bien little endian
>
> maintenant execute le sur une sparc:
> tu obtiens:
> rouet at tan ~/src/tmp>./test
> 04030201 is converted to 01020304
> 04030201 is converted to 02010403
>
> ou tu vois que l'on est donc sur du big endian, et que lorsque l'on
> convertit du 32bits sur du 16 bits on obtiens alors 2143
>
> J'espere que c'est parlant.
>
>
More information about the Dcmlib
mailing list