X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOImageReader.cpp;h=4eb7fa3047e42f82685e1c9e2f9c3dd6620fc8e6;hb=refs%2Fheads%2Fvtk9itk5wx3-macos;hp=cdb6cb568c15a3cce4174f2b5522fa94f936d1b7;hpb=26b4c3303c14bfef570ad5671627ba5e01519f83;p=creaImageIO.git diff --git a/src/creaImageIOImageReader.cpp b/src/creaImageIOImageReader.cpp index cdb6cb5..3dec1c2 100644 --- a/src/creaImageIOImageReader.cpp +++ b/src/creaImageIOImageReader.cpp @@ -26,6 +26,7 @@ */ +#include #include #include #include @@ -44,6 +45,8 @@ #include #include #include +#include + //#include #include "boost/filesystem/path.hpp" @@ -54,11 +57,11 @@ namespace creaImageIO //===================================================================== ImageReader::ImageReader() : - mUnreadableImage(0), + mUnreadableImage(NULL), mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") { // std::cout << "#### ImageReader::ImageReader()"<(new VtkImageReader(vtkPNGReader::New() , "PNG", ".png"))); @@ -67,6 +70,8 @@ namespace creaImageIO Register(boost::shared_ptr(new VtkImageReader(vtkBMPReader::New(), "BMP", ".bmp"))); Register(boost::shared_ptr(new VtkImageReader(vtkSLCReader::New()))); Register(boost::shared_ptr(new VtkImageReader(vtkMetaImageReader::New(),"MHD",".mhd"))); + Register(boost::shared_ptr(new VtkImageReader(vtkNIFTIImageReader::New(),"NIF",".nii.gz"))); + // Register(new VtkImageReader(vtkGESignalReader::New())); Register(boost::shared_ptr(new DicomImageReader)); Register(boost::shared_ptr(new UltrasonixImageReader)); @@ -88,13 +93,18 @@ namespace creaImageIO #endif for (int i=0;iSetScalarComponentFromFloat(i,j,0,0,0); + { + for (int j=0;jSetScalarComponentFromFloat(i,j,0,0,0); + } // for j + } // for i + for (int i=0;iSetScalarComponentFromFloat(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 } //===================================================================== @@ -107,11 +117,11 @@ namespace creaImageIO //delete (*i); // } // mReader.clear(); - if (mUnreadableImage!=0) - { - mUnreadableImage->Delete(); - mUnreadableImage = 0; - } + if (mUnreadableImage!=NULL) + { + mUnreadableImage->Delete(); + mUnreadableImage = NULL; + } } //===================================================================== @@ -119,7 +129,6 @@ namespace creaImageIO void ImageReader::Register(boost::shared_ptr r) { mReader.push_back(r); - } void ImageReader::UnRegister(const std::string i_val) @@ -139,7 +148,6 @@ namespace creaImageIO std::vector::iterator i ; for (i=mUnReader.begin(); i!=mUnReader.end(); i++) { - if ( (*i).c_str() == filename) { ok = false; @@ -154,6 +162,7 @@ namespace creaImageIO // Returns true iff the file is readable bool ImageReader::CanRead( const std::string& filename ) { + bool ok = false; if( !ShallNotRead(filename)) @@ -182,22 +191,23 @@ 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