]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOImageReader.cpp
#3185 creaImageIO Feature New Normal - Clean code
[creaImageIO.git] / src / creaImageIOImageReader.cpp
index 4b67e04c005f2c37ae91a1dc7fefdc588ef82741..4220fb1f85c7371f809f015b087c49b1e2b7f005 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>
 #include <vtkMetaImageReader.h>
 //#include <vtkGESignalReader.h>
 
-
 #include "boost/filesystem/path.hpp"
 
 namespace creaImageIO
 {
-  
-
-
-
 
   //=====================================================================
   ImageReader::ImageReader()
@@ -36,11 +59,12 @@ namespace creaImageIO
   {
     //    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())));
+
+
+       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()));
@@ -64,9 +88,6 @@ namespace creaImageIO
        mUnreadableImage->SetScalarComponentFromFloat(i,i,0,0,255);
        mUnreadableImage->SetScalarComponentFromFloat(dim[0]-1-i,i,0,0,255);
       }
-
-
-    
   }
   //=====================================================================
 
@@ -120,10 +141,8 @@ namespace creaImageIO
                }
        }
        return ok;
-       
   }
 
-
   //=====================================================================
   // Returns true iff the file is readable
   bool ImageReader::CanRead( const std::string& filename ) 
@@ -149,7 +168,6 @@ namespace creaImageIO
                }
        }
        return ok;
-       
   }
   //=====================================================================
 
@@ -175,8 +193,19 @@ namespace creaImageIO
     return i;
   }
   //=====================================================================
-
-
+  // Another function to read attributes for a file
+  void ImageReader::getAttributes(const std::string filename,
+               std::map <std::string , std::string> &infos, std::vector<std::string> i_attr)
+  {
+          if (mLastFilename!=filename)
+      {
+       if (!CanRead(filename)) 
+         { 
+           return;
+         }
+      }
+    mLastReader->getAttributes(filename, infos, i_attr);
+  }
   //=====================================================================
    void ImageReader::ReadAttributes(const std::string& filename, 
                                    std::map<std::string,std::string>& attr)