]> Creatis software - gdcm.git/blobdiff - Example/exGC.cxx
Fix mistypings
[gdcm.git] / Example / exGC.cxx
index fc108a45905a81a7d2bdcf0f0a9a6e587f874987..513232998285ea801561c9644390176f48e70078 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: exGC.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/04/20 11:25:35 $
-  Version:   $Revision: 1.3 $
+  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
 #include "gdcmFile.h"
 #include "gdcmFileHelper.h"
 #include "gdcmDocument.h"
-#include "gdcmValEntry.h"
-#include "gdcmBinEntry.h"
+#include "gdcmDataEntry.h"
 #include "gdcmSeqEntry.h"
 
+#include <stdlib.h> // for exit
+
 typedef struct  // Maybe we should add it to gdcm ?
 {
    uint8_t r;
@@ -69,24 +70,26 @@ int main(int argc, char *argv[])
 // ============================================================
 //   Read the input image.
 // ============================================================
-   // a gdcm::File contains all the Dicom Field but the Pixels Element
-
-   gdcm::File *f1= new gdcm::File( fileName );
-
+   // a GDCM_NAME_SPACE::File contains all the Dicom Field but the Pixels Element
 
    std::cout << argv[1] << std::endl;
 
-   f1 = new gdcm::File( fileName );
-   if (!f1->IsReadable()) {
+   GDCM_NAME_SPACE::File *f = GDCM_NAME_SPACE::File::New();
+   f->SetLoadMode( GDCM_NAME_SPACE::LD_ALL);
+   f->SetFileName( fileName );
+   bool res = f->Load();        
+
+   if (!res) {
        std::cerr << "Sorry, " << fileName <<"  not a gdcm-readable "
                  << "DICOM / ACR File"
                  <<std::endl;
+       f->Delete();
        return 0;
    }
    std::cout << " ... is readable " << std::endl;
 
 /*
-   if (!f1->IsMonochrome()) {
+   if (!f->IsMonochrome()) {
        std::cerr << "Sorry, " << fileName <<"  not a 'color' File "
            << " "
                  <<std::endl;
@@ -98,17 +101,19 @@ int main(int argc, char *argv[])
 //   Load the pixels in memory.
 // ============================================================
 
-   // We need a gdcm::FileHelper, since we want to load the pixels        
-   gdcm::FileHelper *fh1 = new gdcm::FileHelper(f1);
+   // We need a GDCM_NAME_SPACE::FileHelper, since we want to load the pixels        
+   GDCM_NAME_SPACE::FileHelper *fh = GDCM_NAME_SPACE::FileHelper::New(f);
 
    // (unit8_t DOESN'T mean it's mandatory for the image to be a 8 bits one) 
 
-   uint8_t *imageData = fh1->GetImageData();
+   uint8_t *imageData = fh->GetImageData();
 
    if ( imageData == 0 )
    {
        std::cerr << "Sorry, Pixels of" << fileName <<"  are not "
                  << " gdcm-readable."  << std::endl;
+       f->Delete();
+       fh->Delete();
        return 0;
    }
 
@@ -116,38 +121,34 @@ int main(int argc, char *argv[])
    // ------                              without Sequences     -------------
 
  
-   gdcm::FileHelper *copy = new gdcm::FileHelper( output );
+   GDCM_NAME_SPACE::FileHelper *copy = GDCM_NAME_SPACE::FileHelper::New( );
+   copy->SetFileName( output );
+   copy->Load();
  
-   gdcm::DocEntry *d = f1->GetFirstEntry();
+   GDCM_NAME_SPACE::DocEntry *d = f->GetFirstEntry();
    while(d)
    {
       // We skip SeqEntries, since user cannot do much with them
-      if ( !(dynamic_cast<gdcm::SeqEntry*>(d))
+      if ( !(dynamic_cast<GDCM_NAME_SPACE::SeqEntry*>(d))
       // We skip Shadow Groups, since nobody knows what they mean
            && !( d->GetGroup()%2 ) )
       { 
 
-         if ( gdcm::BinEntry *b = dynamic_cast<gdcm::BinEntry*>(d) )
+         if ( GDCM_NAME_SPACE::DataEntry *de = dynamic_cast<GDCM_NAME_SPACE::DataEntry *>(d) )
          {              
-            copy->GetFile()->InsertBinEntry( b->GetBinArea(),b->GetLength(),
-                                             b->GetGroup(),b->GetElement(),
-                                             b->GetVR() );
-         }
-         else if ( gdcm::ValEntry *v = dynamic_cast<gdcm::ValEntry*>(d) )
-         {   
-             copy->GetFile()->InsertValEntry( v->GetValue(),
-                                              v->GetGroup(),v->GetElement(),
-                                              v->GetVR() ); 
+            copy->GetFile()->InsertEntryBinArea( de->GetBinArea(),de->GetLength(),
+                                                 de->GetGroup(),de->GetElement(),
+                                                 de->GetVR() );
          }
          else
          {
-          // We skip gdcm::SeqEntries
+          // We skip GDCM_NAME_SPACE::SeqEntries
          }
       }
-      d = f1->GetNextEntry();
+      d = f->GetNextEntry();
    }
 
-   int imageSize = fh1->GetImageDataSize();
+   int imageSize = fh->GetImageDataSize();
 // Black up all 'grey' pixels
    int i;
    int n = 0;
@@ -164,17 +165,17 @@ int main(int argc, char *argv[])
       }
    }
    
-    std::cout << n << " points put to black (within " 
-              << imageSize/3 << ")" << std::endl;
+   std::cout << n << " points put to black (within " 
+             << imageSize/3 << ")" << std::endl;
 
    n = 0;
    for (i = 0; i<imageSize/3; i++)
    {
-   if ( ((rgb8_t *)imageData)[i].r < threshold
-     &&
-        ((rgb8_t *)imageData)[i].g < threshold
-     &&
-        ((rgb8_t *)imageData)[i].b < threshold )
+      if ( ((rgb8_t *)imageData)[i].r < threshold
+         &&
+         ((rgb8_t *)imageData)[i].g < threshold
+         &&
+         ((rgb8_t *)imageData)[i].b < threshold )
       {
          n++;
         ((rgb8_t *)imageData)[i].r = (unsigned char)background;
@@ -192,9 +193,9 @@ int main(int argc, char *argv[])
 
    copy->WriteDcmExplVR( output );
 
-   delete f1;
-   delete fh1;
-   delete copy;
+   f->Delete();
+   fh->Delete();
+   copy->Delete();
 
    exit (0);
 }