]> Creatis software - gdcm.git/blobdiff - Testing/TestReadWriteReadCompare.cxx
New features for DicomDir
[gdcm.git] / Testing / TestReadWriteReadCompare.cxx
index 8a821950e4fbbf870fe1283a0f9fb75c39a5f4c9..51007bbd89237c84f336e6fc4b153ea3548b6bec 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestReadWriteReadCompare.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/02 10:05:26 $
-  Version:   $Revision: 1.21 $
+  Date:      $Date: 2005/07/06 09:53:43 $
+  Version:   $Revision: 1.23 $
                                                                                 
   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 "gdcmDebug.h"
 
 //Generated file:
 #include "gdcmDataImages.h"
-
 int CompareInternal(std::string const & filename, std::string const & output)
 {
    std::cout << "   Testing: " << filename << std::endl;
@@ -38,7 +39,6 @@ int CompareInternal(std::string const & filename, std::string const & output)
    std::cout << "           step 1...";
 
    //////////////// Step 2:
-
    gdcm::FileHelper *filehelper = new gdcm::FileHelper( file );
    int dataSize    = filehelper->GetImageDataSize();
    uint8_t *imageData = filehelper->GetImageData(); //EXTREMELY IMPORTANT
@@ -46,30 +46,13 @@ int CompareInternal(std::string const & filename, std::string const & output)
           // GetImageData or if he wants to GetImageDataRaw
           // (even if we do it by setting a flag, he will have to decide) 
 
-   /// \todo Following line commented out because gdcmFile::SetImageData() is
-   /// brain dead: it sets ImageDataSize to its argument and PixelRead to a.
-   /// Later on, when writing gdcmFile::WriteBase() 
-   /// and because PixelRead == 1 we call
-   ///    PixelElement->SetLength( ImageDataSizeRaw );
-   /// where we use ImageDataSizeRAW instead of ImageDataSize !
-   /// But when the original image made the transformation LUT -> RGB, 
-   /// ImageDataSizeRaw is the third of ImageDataSize, and there is no
-   /// reason (since we called gdcmFile::SetImageData) to use the Raw image
-   /// size... This "bug" in gdcmFile made that we had to black list
-   /// images 8BitsUncompressedColor.dcm, OT-PAL-8-face.dcm and 
-   /// US-PAL-8-10x-echo.dcm...
-   /// In conclusion fix gdcmFile, and then uncomment the following line.
-   
-   // --> I did. ctest doesn't break. But ... is it enought to say it's OK ?
-   
-   filehelper->SetImageData(imageData, dataSize);
+   //filehelper->SetImageData(imageData, dataSize);
    
    filehelper->SetWriteModeToRGB();
    filehelper->WriteDcmExplVR( output );
    std::cout << "2...";
  
    //////////////// Step 3:
-
    gdcm::FileHelper *reread = new gdcm::FileHelper( output );
    if( !reread->GetFile()->IsReadable() )
    {
@@ -141,13 +124,17 @@ int CompareInternal(std::string const & filename, std::string const & output)
 int TestReadWriteReadCompare(int argc, char *argv[]) 
 {
    int result = 0;
-   if (argc == 3)
+
+   if (argc == 4)
+      gdcm::Debug::DebugOn();
+
+   if (argc >= 3)
    {
-      const std::string input = argv[1];
+      const std::string input  = argv[1];
       const std::string output = argv[2];
       result += CompareInternal(input, output);
    }
-   else if( argc > 3 || argc == 2 )
+   else if( argc > 4 || argc == 2 )
    {
       std::cerr << "Please read the manual" << std::endl;
    }