]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOImageReader.cpp
#3264 creaImageIO Feature New Normal - Add Dicom Tags to the DB sqlite
[creaImageIO.git] / src / creaImageIOImageReader.cpp
index 4220fb1f85c7371f809f015b087c49b1e2b7f005..ecba3edb1fe35fe15db60215694920174b576a00 100644 (file)
@@ -54,11 +54,11 @@ namespace creaImageIO
   //=====================================================================
   ImageReader::ImageReader()
     :   
-    mUnreadableImage(0),
+    mUnreadableImage(NULL),
     mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
   {
     //    std::cout << "#### ImageReader::ImageReader()"<<std::endl;
-    if (mUnreadableImage!=0) return;
+    if (mUnreadableImage!=NULL) return;
 
 
        Register( boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkPNGReader::New() , "PNG", ".png")));
@@ -78,16 +78,28 @@ namespace creaImageIO
     dim[0] = dim[1] = 128; 
     dim[2] = 1; 
     mUnreadableImage->SetDimensions ( dim );
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
     mUnreadableImage->SetScalarTypeToUnsignedChar();
-    mUnreadableImage->AllocateScalars();    
+    mUnreadableImage->AllocateScalars();   
+#else
+    mUnreadableImage->AllocateScalars(VTK_UNSIGNED_CHAR,1);
+#endif
     for (int i=0;i<dim[0];i++) 
-      for (int j=0;j<dim[1];j++) 
-       mUnreadableImage->SetScalarComponentFromFloat(i,j,0,0,0);
+       {
+               for (int j=0;j<dim[1];j++) 
+               {
+                       mUnreadableImage->SetScalarComponentFromFloat(i,j,0,0,0);
+               } // for j
+       } // for i
+       
     for (int i=0;i<dim[0];i++) 
-      {
-       mUnreadableImage->SetScalarComponentFromFloat(i,i,0,0,255);
-       mUnreadableImage->SetScalarComponentFromFloat(dim[0]-1-i,i,0,0,255);
-      }
+    {
+               mUnreadableImage->SetScalarComponentFromFloat(i,i,0,0,255);
+               mUnreadableImage->SetScalarComponentFromFloat(dim[0]-1-i,i,0,0,255);
+    } // for i
   }
   //=====================================================================
 
@@ -100,11 +112,11 @@ namespace creaImageIO
        //delete (*i);
  //     }
 //    mReader.clear();
-    if (mUnreadableImage!=0
-      {
-       mUnreadableImage->Delete();
-       mUnreadableImage = 0;
-      }
+    if (mUnreadableImage!=NULL
+    {
+               mUnreadableImage->Delete();
+               mUnreadableImage = NULL;
+    }
   }
   //=====================================================================
 
@@ -112,7 +124,6 @@ namespace creaImageIO
   void ImageReader::Register(boost::shared_ptr<AbstractImageReader> r)
   {
     mReader.push_back(r);
-
   }
 
   void ImageReader::UnRegister(const std::string i_val)
@@ -132,7 +143,6 @@ namespace creaImageIO
                std::vector<std::string >::iterator i ;
                for (i=mUnReader.begin(); i!=mUnReader.end(); i++)
                {
-                       
                        if ( (*i).c_str() == filename) 
                        {
                                ok = false;
@@ -147,6 +157,8 @@ namespace creaImageIO
   // Returns true iff the file is readable
   bool ImageReader::CanRead( const std::string& filename ) 
   {
+printf("EED ImageReader::CanRead Start\n");
+
     bool ok = false;
 
        if( !ShallNotRead(filename))
@@ -163,10 +175,13 @@ namespace creaImageIO
                        {
                                mLastFilename = filename;
                                mLastReader = *i;
+printf("EED ImageReader::CanRead %s\n",mLastReader->GetName().c_str());
                                break;
                        }
                }
        }
+if (ok==true) printf("EED ImageReader::CanRead true End\n");
+if (ok==false) printf("EED ImageReader::CanRead false End\n");
        return ok;
   }
   //=====================================================================
@@ -175,22 +190,30 @@ namespace creaImageIO
   // Reads the file (CanRead must be called before : no test here)
   vtkImageData*  ImageReader::ReadImage( const std::string& filename)
   {
-         if (mLastFilename!=filename)
-      {
-       if (!CanRead(filename))  
-         { 
-           vtkImageData* im = vtkImageData::New();
-           im->ShallowCopy(mUnreadableImage);
-           return im;
-         }
-      }
-    vtkImageData* i = mLastReader->ReadImage(mLastFilename);
-    if (i==0) 
-      {
-       i = vtkImageData::New();
-       i->ShallowCopy(mUnreadableImage);
-      }
-    return i;
+printf("EED ImageReader::ReadImage Start\n");
+               if (mLastFilename!=filename)
+               {
+printf("EED ImageReader::ReadImage 1\n");
+                       if (!CanRead(filename))  
+                       { 
+printf("EED ImageReader::ReadImage 2\n");
+                               vtkImageData* im = vtkImageData::New();
+                               im->ShallowCopy(mUnreadableImage);
+printf("EED ImageReader::ReadImage END2\n");
+                               return im;
+                       } // CanRead
+               } // for mLastFilename
+printf("EED ImageReader::ReadImage 3\n");
+               vtkImageData* i = mLastReader->ReadImage(mLastFilename);
+printf("EED ImageReader::ReadImage 4\n");
+               if (i==NULL) 
+               {
+                       i = vtkImageData::New();
+                       i->ShallowCopy(mUnreadableImage);
+               } // i
+printf("EED ImageReader::ReadImage END1\n");
+
+               return i;
   }
   //=====================================================================
   // Another function to read attributes for a file