-#include "gdcm.h"
-
-int main(int argc, char* argv[])
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: TestWriteSimple.cxx,v $
+ Language: C++
+ Date: $Date: 2005/07/08 12:02:02 $
+ Version: $Revision: 1.12 $
+
+ 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"
+
+int main(int argc, char *argv[])
{
-
- if (argc < 3)
- {
- std::cerr << "Usage :" << std::endl << argv[0] <<
- " InputHeader OutputDicom" << std::endl;
- return 0;
- }
-
- std::string header = argv[1];
- const char *output = argv[2];
-
- gdcmHeader *f1 = new gdcmHeader( header );
- gdcmFile *f2 = new gdcmFile( f1 );
-
- // If the following call is important, then the API sucks. Why is it
- // required to allocate PixelData when we are not using it !?
- void* PixelData = f2->GetImageData(); //EXTREMELY IMPORTANT
- //Otherwise ReadPixel == -1 -> the dicom writing fails completely
-
- int dataSize = f2->GetImageDataSize();
- // unsigned char cast is necessary to be able to delete the buffer
- // since deleting a void* is not allowed in c++
- uint8_t* imageData = (uint8_t*)f2->GetImageData();
-
- f2->SetImageData( imageData, dataSize);
-
- f2->WriteDcmExplVR( output );
-
- delete[] imageData;
- delete f1;
- delete f2;
- //delete PixelData; //Does GetImageData return the same pointer ?
- (void)PixelData;
-
- return 0;
+ if (argc < 3)
+ {
+ std::cerr << "Usage :" << std::endl << argv[0]
+ << " InputFile OutputDicom" << std::endl;
+ return 0;
+ }
+
+ std::string header = argv[1];
+ const char *output = argv[2];
+
+ gdcm::File *f1 = new gdcm::File( );
+ f1->SetFileName ( header );
+ f1->Load( );
+
+ gdcm::FileHelper *f2 = new gdcm::FileHelper( f1 );
+
+ // If the following call is important, then the API sucks. Why is it
+ // required to allocate PixelData when we are not using it !?
+ uint8_t* PixelData = f2->GetImageData(); //EXTREMELY IMPORTANT
+ //Otherwise ReadPixel == -1 -> the dicom writing fails completely
+
+ int dataSize = f2->GetImageDataSize();
+ // unsigned char cast is necessary to be able to delete the buffer
+ // since deleting a void* is not allowed in c++
+ uint8_t *imageData = (uint8_t *)f2->GetImageData();
+
+ f2->SetImageData( imageData, dataSize );
+
+ f2->WriteDcmExplVR( output );
+
+ delete f1;
+ delete f2;
+ //delete PixelData; //Does GetImageData return the same pointer ?
+ (void)PixelData;
+
+ return 0;
}