]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOImageReader.cpp
SetValue vs SetLabel
[creaImageIO.git] / src2 / creaImageIOImageReader.cpp
index 98e1341292b9173ee35b526ba4eaaa289378fe11..54257c1abc7fa45ea2fe87807f48ee28c5d6ddc5 100644 (file)
@@ -36,8 +36,9 @@ namespace creaImageIO
     //    std::cout << "#### ImageReader::ImageReader()"<<std::endl;
     if (mUnreadableImage!=0) return;
 
-    Register(new VtkImageReader(vtkPNGReader::New()));
-    Register(new VtkImageReader(vtkTIFFReader::New()));
+
+    Register(new VtkImageReader(vtkPNGReader::New(), "PNG", ".png"));
+    Register(new VtkImageReader(vtkTIFFReader::New(), "JPEG", ".jpeg"));
     Register(new VtkImageReader(vtkJPEGReader::New()));
     Register(new VtkImageReader(vtkBMPReader::New()));
     Register(new VtkImageReader(vtkSLCReader::New()));
@@ -46,17 +47,7 @@ namespace creaImageIO
     Register(new DicomImageReader);
     Register(new UltrasonixImageReader);
 
-    /*
-    std::cout << "## Registered file extensions : "<<std::endl;
-    std::vector<std::string>::const_iterator i;
-    for (i=GetKnownExtensions().begin();
-        i!=GetKnownExtensions().end();
-        i++)
-      {
-       std::cout << "'"<<(*i)<<"'"<<std::endl;
-      }
-    */
-    // 
     mUnreadableImage = vtkImageData::New();
     int dim[3];
     dim[0] = dim[1] = 128; 
@@ -81,12 +72,9 @@ namespace creaImageIO
   //=====================================================================
   ImageReader::~ImageReader()
   {
-    //    std::cout << "#### ImageReader::~ImageReader()"<<std::endl;
-    std::vector<AbstractImageReader*>::iterator i;
+      std::vector<AbstractImageReader*>::iterator i;
     for (i=mReader.begin(); i!=mReader.end(); i++)
       {
-       //      std::cout << "#### ImageReader::UnRegister("
-       //                << (*i)->GetName()<<")"<<std::endl;
        delete (*i);
       }
     mReader.clear();
@@ -101,60 +89,54 @@ namespace creaImageIO
   //=====================================================================
   void ImageReader::Register(AbstractImageReader* r)
   {
-    //    std::cout << "#### ImageReader::Register("<<r->GetName()<<")"<<std::endl;
     mReader.push_back(r);
-    //    r->PushBackExtensions(mKnownExtensions);
+
   }
   //=====================================================================
 
   //=====================================================================
   // Returns true iff the file is readable
   bool ImageReader::CanRead( const std::string& filename ) 
-  //                        const std::string& exclude )
   {
-    //    std::cout << "## ImageReader::CanRead("<<filename<<")"<<std::endl;
     bool ok = false;
-    std::vector<AbstractImageReader*>::iterator i;
-    for (i=mReader.begin(); i!=mReader.end(); i++)
-      {
-       //      if ((*i)->GetName()==exclude) continue;
-       ok = (*i)->CanRead(filename);
-       if (ok) 
-         {
-           mLastFilename = filename;
-           mLastReader = *i;
-           break;
-         }
-      }
-    return ok;
+       if(filename != "")
+       {
+           std::vector<AbstractImageReader*>::iterator i;
+               for (i=mReader.begin(); i!=mReader.end(); i++)
+               {
+                       ok = (*i)->CanRead(filename);
+                       if (ok) 
+                       {
+                               mLastFilename = filename;
+                               mLastReader = *i;
+                               break;
+                       }
+               }
+       }
+       return ok;
+       
   }
   //=====================================================================
 
   //=====================================================================
   // Reads the file (CanRead must be called before : no test here)
   vtkImageData*  ImageReader::ReadImage( const std::string& filename)
-  //                                    const std::string& exclude )
   {
-    //    std::cout << "## ImageReader::Read("<<filename<<")"<<std::endl;
     if (mLastFilename!=filename)
       {
-       if (!CanRead(filename)) //,exclude)) 
+       if (!CanRead(filename))  
          { 
-           //      std::cout << "  -- Cannot read image "<<std::endl;
            vtkImageData* im = vtkImageData::New();
            im->ShallowCopy(mUnreadableImage);
            return im;
          }
       }
     vtkImageData* i = mLastReader->ReadImage(mLastFilename);
-    //    std::cout << "i="<<i<<std::endl;
     if (i==0) 
       {
-       //      std::cout << "i=UNREAD"<<i<<std::endl;
        i = vtkImageData::New();
        i->ShallowCopy(mUnreadableImage);
       }
-    //    std::cout << "i="<<i<<std::endl;
     return i;
   }
   //=====================================================================
@@ -164,8 +146,6 @@ namespace creaImageIO
    void ImageReader::ReadAttributes(const std::string& filename, 
                                    std::map<std::string,std::string>& attr)
    {
-     // std::cout << "ImageReader::ReadDicomInfo '"<<filename<<"'"<<std::endl;
-    //    std::cout << "## ImageReader::Read("<<filename<<")"<<std::endl;
     if (mLastFilename!=filename)
       {
        if (!CanRead(filename))