]> Creatis software - gdcm.git/blobdiff - Example/exGC.cxx
* Remove #define and replace then by the call to the corresponding
[gdcm.git] / Example / exGC.cxx
index 25bb6454863e93dc48359d0e86afd6cb0097f2ee..9e1d4c48aff2b02ef5e14b9dbd1fdda07bc931fd 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: exGC.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/09 14:39:48 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2005/08/30 15:13:06 $
+  Version:   $Revision: 1.8 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -23,6 +23,8 @@
 #include "gdcmBinEntry.h"
 #include "gdcmSeqEntry.h"
 
+#include <stdlib.h> // for exit
+
 typedef struct  // Maybe we should add it to gdcm ?
 {
    uint8_t r;
@@ -71,13 +73,14 @@ int main(int argc, char *argv[])
 // ============================================================
    // a gdcm::File contains all the Dicom Field but the Pixels Element
 
-   gdcm::File *f1= new gdcm::File( fileName );
-
-
    std::cout << argv[1] << std::endl;
 
-   f1 = new gdcm::File( fileName );
-   if (!f1->IsReadable()) {
+   gdcm::File *f = new gdcm::File();
+   f->SetLoadMode( gdcm::LD_ALL);
+   f->SetFileName( fileName );
+   bool res = f->Load();        
+
+   if (!res) {
        std::cerr << "Sorry, " << fileName <<"  not a gdcm-readable "
                  << "DICOM / ACR File"
                  <<std::endl;
@@ -86,7 +89,7 @@ int main(int argc, char *argv[])
    std::cout << " ... is readable " << std::endl;
 
 /*
-   if (!f1->IsMonochrome()) {
+   if (!f->IsMonochrome()) {
        std::cerr << "Sorry, " << fileName <<"  not a 'color' File "
            << " "
                  <<std::endl;
@@ -99,11 +102,11 @@ int main(int argc, char *argv[])
 // ============================================================
 
    // We need a gdcm::FileHelper, since we want to load the pixels        
-   gdcm::FileHelper *fh1 = new gdcm::FileHelper(f1);
+   gdcm::FileHelper *fh = new gdcm::FileHelper(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 )
    {
@@ -116,9 +119,11 @@ int main(int argc, char *argv[])
    // ------                              without Sequences     -------------
 
  
-   gdcm::FileHelper *copy = new gdcm::FileHelper( output );
+   gdcm::FileHelper *copy = new gdcm::FileHelper( );
+   copy->SetFileName( output );
+   copy->Load();
  
-   gdcm::DocEntry *d = f1->GetFirstEntry();
+   gdcm::DocEntry *d = f->GetFirstEntry();
    while(d)
    {
       // We skip SeqEntries, since user cannot do much with them
@@ -144,22 +149,23 @@ int main(int argc, char *argv[])
           // We skip gdcm::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;
-   for (int i = 0; i<imageSize/3; i++)
+   for (i = 0; i<imageSize/3; i++)
    {
       if ( ((rgb8_t *)imageData)[i].r == ((rgb8_t *)imageData)[i].g
          &&
            ((rgb8_t *)imageData)[i].r == ((rgb8_t *)imageData)[i].b )
       {
          n++;
-         ((rgb8_t *)imageData)[i].r = background;
-         ((rgb8_t *)imageData)[i].g = background;
-         ((rgb8_t *)imageData)[i].b = background;
+         ((rgb8_t *)imageData)[i].r = (unsigned char)background;
+         ((rgb8_t *)imageData)[i].g = (unsigned char)background;
+         ((rgb8_t *)imageData)[i].b = (unsigned char)background;
       }
    }
    
@@ -167,7 +173,7 @@ int main(int argc, char *argv[])
               << imageSize/3 << ")" << std::endl;
 
    n = 0;
-   for (int i = 0; i<imageSize/3; i++)
+   for (i = 0; i<imageSize/3; i++)
    {
    if ( ((rgb8_t *)imageData)[i].r < threshold
      &&
@@ -176,9 +182,9 @@ int main(int argc, char *argv[])
         ((rgb8_t *)imageData)[i].b < threshold )
       {
          n++;
-        ((rgb8_t *)imageData)[i].r = background;
-        ((rgb8_t *)imageData)[i].g = background;
-        ((rgb8_t *)imageData)[i].b = background;  
+        ((rgb8_t *)imageData)[i].r = (unsigned char)background;
+        ((rgb8_t *)imageData)[i].g = (unsigned char)background;
+        ((rgb8_t *)imageData)[i].b = (unsigned char)background;  
       }
    }
    
@@ -191,8 +197,8 @@ int main(int argc, char *argv[])
 
    copy->WriteDcmExplVR( output );
 
-   delete f1;
-   delete fh1;
+   delete f;
+   delete fh;
    delete copy;
 
    exit (0);