]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOImageReader.cpp
#3218 creaImageIO Feature New Normal - vtk8itk4wx3-mingw64
[creaImageIO.git] / src / creaImageIOImageReader.cpp
index d93b186c839253fbac7aa11f29e30260c2de2e75..c3b9070ff9671f736b69dc1a69637dbbe6f3bcb2 100644 (file)
@@ -1,3 +1,31 @@
+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and 
+#  abiding by the rules of distribution of free software. You can  use, 
+#  modify and/ or redistribute the software under the terms of the CeCILL-B 
+#  license as circulated by CEA, CNRS and INRIA at the following URL 
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability. 
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------
+*/
+
+
 #include <creaImageIOImageReader.h>
 #include <creaImageIOTreeAttributeDescriptor.h>
 #include <creaImageIOSystem.h>
@@ -26,16 +54,17 @@ namespace creaImageIO
   //=====================================================================
   ImageReader::ImageReader()
     :   
-    mUnreadableImage(0),
+    mUnreadableImage(NULL),
     mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
   {
     //    std::cout << "#### ImageReader::ImageReader()"<<std::endl;
-    if (mUnreadableImage!=0) return;
-       
-    Register( boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkPNGReader::New(), "PNG", ".png")));
-    Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkTIFFReader::New(), "JPEG", ".jpeg")));
-    Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkJPEGReader::New())));
-    Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkBMPReader::New())));
+    if (mUnreadableImage!=NULL) return;
+
+
+       Register( boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkPNGReader::New() , "PNG", ".png")));
+    Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkTIFFReader::New(), "TIFF", ".tiff")));
+    Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkJPEGReader::New(), "JPEG", ".jpeg")));
+    Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkBMPReader::New(), "BMP", ".bmp")));
     Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkSLCReader::New())));
     Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkMetaImageReader::New(),"MHD",".mhd")));
     //   Register(new VtkImageReader(vtkGESignalReader::New()));
@@ -49,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
   }
   //=====================================================================
 
@@ -71,11 +112,11 @@ namespace creaImageIO
        //delete (*i);
  //     }
 //    mReader.clear();
-    if (mUnreadableImage!=0
-      {
-       mUnreadableImage->Delete();
-       mUnreadableImage = 0;
-      }
+    if (mUnreadableImage!=NULL
+    {
+               mUnreadableImage->Delete();
+               mUnreadableImage = NULL;
+    }
   }
   //=====================================================================
 
@@ -83,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)
@@ -103,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;
@@ -146,22 +185,22 @@ 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;
+               if (mLastFilename!=filename)
+               {
+                       if (!CanRead(filename))  
+                       
+                               vtkImageData* im = vtkImageData::New();
+                               im->ShallowCopy(mUnreadableImage);
+                               return im;
+                       } // CanRead
+               } // for mLastFilename
+               vtkImageData* i = mLastReader->ReadImage(mLastFilename);
+               if (i==NULL
+               {
+                       i = vtkImageData::New();
+                       i->ShallowCopy(mUnreadableImage);
+               } // i
+               return i;
   }
   //=====================================================================
   // Another function to read attributes for a file