[Dcmlib] Big Endian suite: comprends toujours pas
Mathieu Malaterre
mathieu.malaterre at kitware.com
Wed Jan 12 16:23:45 CET 2005
> Ni l'un ni l'autre!
> Il indique le type de traitement qu'il faut appliquer a un ensemble
> consecutif de 4 octets lus dans le fichier pour en faire un 'int32'
> comprehensible par le processeur qui l'a lu.
>
> Un fichier ecrit en 'BigEndian', lu sur MacOS aura un SwapCode=1234
> (les octets sont dans l'ordre)
> Ce même fichier, lu sur un PC 'intel inside' aura un SwapCode=2143
> (il faudra permutter les octets)
>
> Un fichier ecrit en 'LittleEndian', lu sur un PC 'intel inside' aura un
> SwapCode=1234
> (les octets sont dans l'ordre)
> Ce même fichier, lu sur MacOS aura un SwapCode=2143
> (il faudra permutter les octets)
Est-ce que c'est valide pour DicomV3 ?
Si oui alors edit gdcmDocument.cxx et montre moi comment SwapCode peut
prendre des valeurs autres que: 1234 / 4321. Voila l'extrait:
if ( net2host )
{
SwapCode = 4321;
gdcmVerboseMacro( "HostByteOrder != NetworkByteOrder");
}
else
{
SwapCode = 1234;
gdcmVerboseMacro( "HostByteOrder = NetworkByteOrder");
}
// Position the file position indicator at first tag (i.e.
// after the file preamble and the "DICM" string).
Fp->seekg(0, std::ios::beg);
Fp->seekg ( 132L, std::ios::beg);
return true;
^^^^^^^^^^^^ -> ca veut dire qu'on a finis. qu'il n'y a plus
d'autre cas de figure.
Il n'y a bien que deux possibilites pour DicomV3. Et ca ne suffit pas
pour les 4 cas de figures !
Merci
Mathieu
More information about the Dcmlib
mailing list