[Dcmlib] Baseline MAC

Jean-Pierre Roux jpr at creatis.insa-lyon.fr
Fri Feb 18 17:55:57 CET 2005


Mathieu Malaterre wrote:

> $ ./bin/TestWrite ../gdcmData/FUJI-10-MONO1-ACR_NEMA_2.dcm x
>
> result:
>
> http://www.creatis.insa-lyon.fr/~malaterre/gdcm/FUJI-10-MONO1-ACR_NEMA_2.dcm.XDCM 
>


Gagne!
L'entete de l'image sur Mac est synchro avec ce qu'on fait ici.
Reste a comprendre pourquoi Exemple/TestWrite qui lit et reecrit une 
image fait autre chose ques TestReadWriteCompare qui lit et ecrit  ;-)

Dans  Testing/TestReadWriteReadCompare.cxx

//////////////// Step 2:
   gdcm::FileHelper *filehelper = new gdcm::FileHelper( file );
   int dataSize    = filehelper->GetImageDataSize();
   uint8_t *imageData = filehelper->GetImageData(); //EXTREMELY IMPORTANT
          // Sure, it is : It's up to the user to decide if he wants to
          // GetImageData or if he wants to GetImageDataRaw
          // (even if we do it by setting a flag, he will have to decide)
   filehelper->SetWriteModeToRGB();
   filehelper->WriteDcmExplVR( output );

dans Example/TestWrite.cxx

   e1 = new gdcm::File( fileName.c_str() );
...
   f1 = new gdcm::FileHelper(e1);
...
   imageData= f1->GetImageData();
 ...
   case 'x' :
              // ecriture d'un fichier DICOM Explicit VR
              // à partir d'un dcmFile correct.
      fileNameToWrite = fileName + ".XDCM";
      std::cout << "WriteDCM Explicit VR" << std::endl;
      f1->WriteDcmExplVR(fileNameToWrite);

Le boulot (as light as possible) sur les MetaElements est fait par 
FileHelper::CheckMetaElements(), appele immediatement au debut de la 
methode FileHelper::Write().
Je ne capte pas vraiment comment il peut echaper a ca ...
FileHelper::WriteDcmExplVR ne fait que positionner un flag et appeler 
FileHelper::Write()
?!?
JPRx





More information about the Dcmlib mailing list