]> Creatis software - gdcm.git/blobdiff - Example/WriteRead.cxx
Fix mistypings
[gdcm.git] / Example / WriteRead.cxx
index ac57e18f0c9078c49d5197d4f2b5e5ef67848a99..c08e791b864f86ccaa5e14fc55d7fa74ed42994a 100644 (file)
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: WriteRead.cxx,v $
+  Language:  C++
+  Date:      $Date: 2007/05/23 14:18:05 $
+  Version:   $Revision: 1.16 $
+                                                                                
+  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+  l'Image). All rights reserved. See Doc/License.txt or
+  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
+                                                                                
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+                                                                                
+=========================================================================*/
+#include "gdcmFile.h"
+#include "gdcmFileHelper.h"
+
 #include <iostream>
-#include <stdio.h>
-#include "gdcm.h"
 
-int main(int argc, charargv[])
+int main(int argc, char *argv[])
 {  
-   std::string toto;
-   char zozo[200];
-
-   gdcm::Header* e1, *e2;
-   gdcm::File  * f1, *f2;
+   std::string fileNameToWrite;
 
+   GDCM_NAME_SPACE::File *e1;
+   GDCM_NAME_SPACE::File *e2;
+   GDCM_NAME_SPACE::FileHelper *f1;
+   GDCM_NAME_SPACE::FileHelper *f2;
    uint8_t* imageData, *imageData2;
    int dataSize, dataSize2;
      
    if( argc < 2 )
-    {
-    std::cerr << "Usage " << argv[0] << " image.dcm" << std::endl;
-    return 1;
-    }
+   {
+      std::cerr << "Usage " << argv[0] << " image.dcm" << std::endl;
+      return 1;
+   }
 
-   toto = argv[1];
+   std::string fileName = argv[1];
 
 // --------------------- we read the input image
 
    std::cout << argv[1] << std::endl;
-
-   e1 = new gdcm::Header( toto );
-   if (!e1->IsReadable()) {
-       std::cerr << "Sorry, " << toto <<"  not a Readable DICOM / ACR File"
-                 <<std::endl;
-       return 0;
+   e1 = GDCM_NAME_SPACE::File::New( );
+   e1->SetFileName( fileName );
+   e1->Load();
+   if (!e1->IsReadable()) 
+   {
+      std::cerr << "Sorry, " << fileName <<"  not a Readable DICOM / ACR File"
+                <<std::endl;
+      e1->Delete();
+      return 1;
    }
    
-   f1 = new gdcm::File(e1);
+   f1 = GDCM_NAME_SPACE::FileHelper::New(e1);
    imageData= f1->GetImageData();
    dataSize = f1->GetImageDataSize();
 
 // --------------------- we write it as an Explicit VR DICOM file
 
-      sprintf(zozo, "temp.XDCM" );
-      std::cout << "WriteDCM Explicit VR" << std::endl;
-      f1->WriteDcmExplVR(zozo);
+   fileNameToWrite = "temp.XDCM";
+   std::cout << "WriteDCM Explicit VR" << std::endl;
+   f1->WriteDcmExplVR(fileNameToWrite);
 
 // --------------------- we read the written image
-      
-   e2 = new gdcm::Header( zozo );
-   if (!e2->IsReadable()) {
-       std::cerr << "Sorry, " << zozo << " not a Readable DICOM / ACR File"  
-                 <<std::endl;
-       return 0;
+   e2 = GDCM_NAME_SPACE::File::New( );
+   e2->SetFileName( fileNameToWrite );
+   e2->Load();
+   if (!e2->IsReadable()) 
+   {
+      std::cerr << "Sorry, " << fileNameToWrite << " not a Readable DICOM / ACR File"  
+               <<std::endl;
+      e1->Delete();
+      e2->Delete();
+      f1->Delete();
+      return 1;
    }
-   f2 = new gdcm::File(e2);
+   f2 = GDCM_NAME_SPACE::FileHelper::New(e2);
    imageData2= f2->GetImageData();
    dataSize2 = f2->GetImageDataSize();
 
 // --------------------- we compare the pixel areas
 
-  if (dataSize != dataSize2) {
-     std::cout << " ----------------------------------------- " 
-          << "Bad shot! Lengthes are different : " 
-          << dataSize << " # " << dataSize2
-          << " for file : " << toto << std::endl;
+   if (dataSize != dataSize2) 
+   {
+      std::cout << " ----------------------------------------- " 
+                << "Bad shot! Lengthes are different : " 
+                << dataSize << " # " << dataSize2
+                << " for file : " << fileName << std::endl;
 
-     return 0;
-  }
-  if (int res=memcmp(imageData,imageData2,dataSize) !=0) {
-     std::cout << " ----------------------------------------- " 
-          << "Bad shot! Pixels are different : " 
-          << " for file : " << toto << std::endl;
-     std::cout << "memcmp(imageData,imageData2,dataSize) = " << res << std::endl;
-     return 1;
-  }
+      e1->Delete();
+      e2->Delete();
+      f1->Delete();
+      f2->Delete();
+      return 1;
+   }
+   if (int res=memcmp(imageData,imageData2,dataSize) !=0) 
+   {
+      std::cout << " ----------------------------------------- " 
+                << "Bad shot! Pixels are different : " 
+                << " for file : " << fileName << std::endl;
+      std::cout << "memcmp(imageData,imageData2,dataSize) = " << res << std::endl;
+      e1->Delete();
+      e2->Delete();
+      f1->Delete();
+      f2->Delete();
+      return 1;
+   }
   
-  //If we reach here everything is fine, return 0 then:
-  return 0;
+   e1->Delete();
+   e2->Delete();
+   f1->Delete();
+   f2->Delete();
+   return 0;
 }