]> Creatis software - gdcm.git/blobdiff - Example/exOverlaysACR.cxx
Allow user to ask for MONOCHROME1 (0 = white) writting.
[gdcm.git] / Example / exOverlaysACR.cxx
index f5eb508e0a3818b94e1b844ef8c84e425054f437..8ede8c90a7bc20c999dcbd6c2a18d307c1654db5 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: exOverlaysACR.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/18 08:35:44 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2007/05/23 14:18:05 $
+  Version:   $Revision: 1.11 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -59,9 +59,9 @@ V 6006|0102[US] [Overlay Bit Position] [15] x(f)
  
 int main(int argc, char *argv[])
 {  
-   gdcm::File *f;
+   GDCM_NAME_SPACE::File *f;
  
-   //gdcm::Debug::DebugOn();
+   //GDCM_NAME_SPACE::Debug::DebugOn();
 
    std::cout << "------------------------------------------------" << std::endl;
    std::cout << "Gets the 'Overlays' from a full gdcm-readable ACR-NEMA "
@@ -86,13 +86,13 @@ int main(int argc, char *argv[])
 
    //std::cout << argv[1] << std::endl;
 
-   f = new gdcm::File( );
+   f = GDCM_NAME_SPACE::File::New( );
 
-   f->SetLoadMode(gdcm::LD_NOSEQ | gdcm::LD_NOSHADOW);
+   f->SetLoadMode(GDCM_NAME_SPACE::LD_NOSEQ | GDCM_NAME_SPACE::LD_NOSHADOW);
    f->SetFileName( fileName );
    bool res = f->Load();  
 
-   if( gdcm::Debug::GetDebugFlag() )
+   if( GDCM_NAME_SPACE::Debug::GetDebugFlag() )
    {
       std::cout << "---------------------------------------------" << std::endl;
       f->Print();
@@ -102,7 +102,7 @@ int main(int argc, char *argv[])
        std::cout << "Sorry, " << fileName <<"  not a gdcm-readable "
            << "DICOM / ACR File"
            <<std::endl;
-      delete f;
+      f->Delete();
       return 0;
    }
    std::cout << " ... is readable " << std::endl;
@@ -115,14 +115,14 @@ int main(int argc, char *argv[])
    if ( bitsAllocated <= 8 )
    {
       std::cout << " 8 bits pixel image cannot contain Overlays " << std::endl;
-      delete f;
+      f->Delete();
       return 0;
    }
    std::string s1 = f->GetEntryString(0x6000, 0x0102);
-   if (s1 == gdcm::GDCM_UNFOUND)
+   if (s1 == GDCM_NAME_SPACE::GDCM_UNFOUND)
    {
       std::cout << " Image doesn't contain any Overlay " << std::endl;
-      delete f;
+      f->Delete();
       return 0;
    }
    std::cout << " File is read! " << std::endl;
@@ -132,15 +132,17 @@ int main(int argc, char *argv[])
 //   Load the pixels in memory.
 // ============================================================
 
-   // We don't use a gdcm::FileHelper, since it rubs out 
+   // We don't use a GDCM_NAME_SPACE::FileHelper, since it rubs out 
    // the 'non image' bits of the pixels...
+   
+   /// \todo : Previous remark doesn't work if pixels are compressed !
 
    int nx = f->GetXSize();
    int ny = f->GetYSize();
  
    std::cout << "Dimensions " << ny << "  " <<ny << std::endl;
 
-   gdcm::DocEntry *p = f->GetDocEntry(f->GetGrPixel(), f->GetNumPixel());
+   GDCM_NAME_SPACE::DocEntry *p = f->GetDocEntry(f->GetGrPixel(), f->GetNumPixel());
    if (p == 0)
       std::cout << "Pixels element  not found" << std::endl;
    else
@@ -155,7 +157,7 @@ int main(int argc, char *argv[])
    if (fp == 0)
    {
       std::cout << "Unable to open File" << std::endl;
-      delete f;
+      f->Delete();
       return 0;
    }
    else
@@ -171,7 +173,7 @@ int main(int argc, char *argv[])
                  << "readable. expected length :" << nx*ny 
                  << "  " << "read length : " << lgt
                  << std::endl;
-       delete f;
+       f->Delete();
        delete pixels;  
        return 0;
    }
@@ -195,16 +197,16 @@ int main(int argc, char *argv[])
    uint16_t overlayLocation;
    std::ostringstream str;
    std::string strOverlayLocation;
-   gdcm::File *fileToBuild = 0;
-   gdcm::FileHelper *fh = 0;
+   GDCM_NAME_SPACE::File *fileToBuild = 0;
+   GDCM_NAME_SPACE::FileHelper *fh = 0;
 
       
-while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102)) 
-          != gdcm::GDCM_UNFOUND )
-{
+   while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102)) 
+            != GDCM_NAME_SPACE::GDCM_UNFOUND )
+   {
 
       strOverlayLocation = f->GetEntryString(currentOvlGroup, 0x0200);
-      if ( strOverlayLocation != gdcm::GDCM_UNFOUND )
+      if ( strOverlayLocation != GDCM_NAME_SPACE::GDCM_UNFOUND )
       {
          overlayLocation = atoi(strOverlayLocation.c_str());
          if ( overlayLocation != f->GetGrPixel() )
@@ -222,7 +224,7 @@ while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102))
       std::cout << "Mask :[" <<std::hex << mask << "]" << std::endl;          
       for (int j=0; j<nx*ny ; j++)
       {
-         if( gdcm::Debug::GetDebugFlag() )
+         if( GDCM_NAME_SPACE::Debug::GetDebugFlag() )
             if (pixels[j] >= 0x1000)// if it contains at least one overlay bit
                printf("%d : %04x\n",j, pixels[j]);
 
@@ -231,12 +233,12 @@ while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102))
          else
             tabPixels[j] = 128;
       }
-      if( gdcm::Debug::GetDebugFlag() )
+      if( GDCM_NAME_SPACE::Debug::GetDebugFlag() )
          std::cout << "About to built empty file"  << std::endl;
 
-      fileToBuild = new gdcm::File();
+      fileToBuild = GDCM_NAME_SPACE::File::New();
 
-      if( gdcm::Debug::GetDebugFlag() )
+      if( GDCM_NAME_SPACE::Debug::GetDebugFlag() )
          std::cout << "Finish to built empty file"  << std::endl;
 
       str.str("");
@@ -256,12 +258,12 @@ while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102))
       // Other mandatory fields will be set automatically,
       // just before Write(), by FileHelper::CheckMandatoryElements()
 
-      if( gdcm::Debug::GetDebugFlag() )
+      if( GDCM_NAME_SPACE::Debug::GetDebugFlag() )
          std::cout << "-------------About to built FileHelper"  << std::endl;
 
-      fh = new gdcm::FileHelper(fileToBuild);
+      fh = GDCM_NAME_SPACE::FileHelper::New(fileToBuild);
 
-      if( gdcm::Debug::GetDebugFlag() )
+      if( GDCM_NAME_SPACE::Debug::GetDebugFlag() )
          std::cout << "-------------Finish to built FileHelper"  << std::endl;
 
       fh->SetImageData(tabPixels,nx*ny);
@@ -275,9 +277,9 @@ while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102))
       {
          std::cout << "Failed\n"
                    << "File in unwrittable\n";
-         delete fh;
+         fh->Delete();
          if (fileToBuild)
-            delete fileToBuild;
+            fileToBuild->Delete();
          delete pixels;
          delete tabPixels;
          return 0;
@@ -290,13 +292,14 @@ while ( (strOvlBitPosition = f->GetEntryString(currentOvlGroup, 0x0102))
       i++;
    }
     
-   delete f;
    if (f)
-      delete fh;
+      fh->Delete();
    if (fileToBuild)
-      delete fileToBuild;
+      fileToBuild->Delete();
+   f->Delete();
    delete pixels;
    delete tabPixels;
+
    return 0;
 }