X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOImageReader.cpp;h=1ef6ce428a84d1c61fd7f9d6fb5b166e9995c6ab;hb=f35799cadfdc28f40f5859afff711046655e56d5;hp=3e02d4005fb8ec8f2ae4e647aed556ff775af81c;hpb=cac026929f2431aa4a966bf9ae3c8ff263f5dd63;p=creaImageIO.git diff --git a/src2/creaImageIOImageReader.cpp b/src2/creaImageIOImageReader.cpp index 3e02d40..1ef6ce4 100644 --- a/src2/creaImageIOImageReader.cpp +++ b/src2/creaImageIOImageReader.cpp @@ -15,7 +15,6 @@ //#include - #include "boost/filesystem/path.hpp" namespace creaImageIO @@ -29,34 +28,22 @@ namespace creaImageIO ImageReader::ImageReader() : mUnreadableImage(0), - mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"), - mLastReader(0) - + mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") { // std::cout << "#### ImageReader::ImageReader()"<(new VtkImageReader(vtkPNGReader::New(), "PNG", ".png"))); + Register(boost::shared_ptr(new VtkImageReader(vtkTIFFReader::New(), "JPEG", ".jpeg"))); + Register(boost::shared_ptr(new VtkImageReader(vtkJPEGReader::New()))); + Register(boost::shared_ptr(new VtkImageReader(vtkBMPReader::New()))); + Register(boost::shared_ptr(new VtkImageReader(vtkSLCReader::New()))); + Register(boost::shared_ptr(new VtkImageReader(vtkMetaImageReader::New(),"MHD",".mhd"))); // Register(new VtkImageReader(vtkGESignalReader::New())); - Register(new DicomImageReader); - Register(new UltrasonixImageReader); - - /* - std::cout << "## Registered file extensions : "<::const_iterator i; - for (i=GetKnownExtensions().begin(); - i!=GetKnownExtensions().end(); - i++) - { - std::cout << "'"<<(*i)<<"'"<(new DicomImageReader)); + Register(boost::shared_ptr(new UltrasonixImageReader)); + + mUnreadableImage = vtkImageData::New(); int dim[3]; dim[0] = dim[1] = 128; @@ -81,15 +68,12 @@ namespace creaImageIO //===================================================================== ImageReader::~ImageReader() { - // std::cout << "#### ImageReader::~ImageReader()"<::iterator i; - for (i=mReader.begin(); i!=mReader.end(); i++) - { - // std::cout << "#### ImageReader::UnRegister(" - // << (*i)->GetName()<<")"<Delete(); @@ -99,63 +83,56 @@ namespace creaImageIO //===================================================================== //===================================================================== - void ImageReader::Register(AbstractImageReader* r) + void ImageReader::Register(boost::shared_ptr r) { - // std::cout << "#### ImageReader::Register("<GetName()<<")"<PushBackExtensions(mKnownExtensions); + } //===================================================================== //===================================================================== // Returns true iff the file is readable bool ImageReader::CanRead( const std::string& filename ) - // const std::string& exclude ) { - // std::cout << "## ImageReader::CanRead("<::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 >::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("<ShallowCopy(mUnreadableImage); return im; } } vtkImageData* i = mLastReader->ReadImage(mLastFilename); - // std::cout << "i="<ShallowCopy(mUnreadableImage); } - // std::cout << "i="<GetScalarTypeAsString()<<", pointer="<& attr) { - // std::cout << "ImageReader::ReadDicomInfo '"<& v) { - std::vector::iterator i; + std::vector >::iterator i; for (i=mReader.begin(); i!=mReader.end(); i++) { (*i)->PushBackExtensions(v);