]> Creatis software - gdcm.git/blobdiff - Example/WriteDicom.cxx
First stage of name normalisation : gdcm::File replace by gdcm::FileHelper
[gdcm.git] / Example / WriteDicom.cxx
index 3f8658aab52cef3f2ca32b855b8398f471273100..684d6213db70848c63c086223bb3a05b4e9fde54 100644 (file)
@@ -1,4 +1,22 @@
-#include "gdcm.h"
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: WriteDicom.cxx,v $
+  Language:  C++
+  Date:      $Date: 2005/01/20 16:16:58 $
+  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
+  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 "gdcmHeader.h"
+#include "gdcmFileHelper.h"
 
 // Writting of a DICOM file based on a correct dicom header
 // and data pixel of another image
 int main(int argc, char* argv[])
 {
  
-  if (argc < 3) 
-    {
-    std::cerr << "Usage :" << std::endl << argv[0] << 
-      " HeaderFileName DataFileName" << std::endl;
-    return 0;
-    }
-
-  const char *first = argv[1];
-  gdcm::File *f1 = new gdcm::File( first );
-
-  const char *second = argv[2];
-  gdcm::File *f2 = new gdcm::File( second );
-
-  // We assume that DICOM fields of second file actually exists :
-
-  std::string nbFrames = f2->GetHeader()->GetEntryByNumber(0x0028, 0x0008);
-  if(nbFrames != "gdcm::Unfound") {
-      f1->GetHeader()->ReplaceOrCreateByNumber( nbFrames, 0x0028, 0x0008);
-  }
-         
-  f1->GetHeader()->ReplaceOrCreateByNumber(
-    f2->GetHeader()->GetEntryByNumber(0x0028, 0x0010), 0x0028, 0x0010); // nbLig
-  f1->GetHeader()->ReplaceOrCreateByNumber( 
-    f2->GetHeader()->GetEntryByNumber(0x0028, 0x0011), 0x0028, 0x0011); // nbCol
-
-  // Some other tags should be updated:
-
-  // TODO : add a default value
-  // TODO : a function which take as input a list of tuple (gr, el)
-  //        and that does the job
-
-  int dataSize    = f2->GetImageDataSize();
-  uint8_t* imageData = f2->GetImageData();
-
-  std::cout << "dataSize :" << dataSize << std::endl;
-
-  // TODO : Shouldn't we merge those two functions ?
-  f1->SetImageData( imageData, dataSize);
-  f1->GetHeader()->SetImageDataSize( dataSize );
-
-  f1->GetHeader()->Print();
-
-  std::string s0  = f2->GetHeader()->GetEntryByNumber(0x7fe0, 0x0000);
-  std::string s10 = f2->GetHeader()->GetEntryByNumber(0x7fe0, 0x0010);
-
-  std::cout << "lgr 7fe0, 0000 " << s0  << std::endl;
-  std::cout << "lgr 7fe0, 0010 " << s10 << std::endl;
-
-  std::cout << "WriteDCM" << std::endl;
-
-  f1->WriteDcmExplVR("WriteDicom.dcm");
-
-  return 0;
+   if (argc < 3) 
+     {
+     std::cerr << "Usage :" << std::endl << argv[0] << 
+       " HeaderFileName DataFileName" << std::endl;
+     return 0;
+     }
+   const char *first = argv[1];
+   gdcm::FileHelper *f1 = new gdcm::FileHelper( first );
+   const char *second = argv[2];
+   gdcm::FileHelper *f2 = new gdcm::FileHelper( second );
+   // We assume that DICOM fields of second file actually exists :
+   std::string nbFrames = f2->GetHeader()->GetEntry(0x0028, 0x0008);
+   if(nbFrames != "gdcm::Unfound") {
+       f1->GetHeader()->ReplaceOrCreate( nbFrames, 0x0028, 0x0008);
+   }
+          
+   f1->GetHeader()->ReplaceOrCreate(
+     f2->GetHeader()->GetEntry(0x0028, 0x0010), 0x0028, 0x0010); // nbLig
+   f1->GetHeader()->ReplaceOrCreate( 
+     f2->GetHeader()->GetEntry(0x0028, 0x0011), 0x0028, 0x0011); // nbCol
+   // Some other tags should be updated:
+   // TODO : add a default value
+   // TODO : a function which take as input a list of tuple (gr, el)
+   //        and that does the job
+   int dataSize    = f2->GetImageDataSize();
+   uint8_t* imageData = f2->GetImageData();
+   std::cout << "dataSize :" << dataSize << std::endl;
+   // TODO : Shouldn't we merge those two functions ?
+   f1->SetImageData( imageData, dataSize);
+   f1->GetHeader()->Print();
+   std::string s0  = f2->GetHeader()->GetEntry(0x7fe0, 0x0000);
+   std::string s10 = f2->GetHeader()->GetEntry(0x7fe0, 0x0010);
+   std::cout << "lgr 7fe0, 0000 " << s0  << std::endl;
+   std::cout << "lgr 7fe0, 0010 " << s10 << std::endl;
+   std::cout << "WriteDCM" << std::endl;
+   f1->WriteDcmExplVR("WriteDicom.dcm");
+   return 0;
 }